js滑动导航栏点击后居中效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
} ul {
list-style: none;
} /* 控制其显示和隐藏 */
.show {
display: block !important;
} .header {
overflow: hidden;
height: 25px;
width: 100%;
height: 25px;
line-height: 25px;
padding-bottom: 1px;
} .header-tab {
width: 100%;
display: flex;
overflow: hidden;
white-space: nowrap;
overflow-x: scroll;
background-color: pink;
white-space: nowrap;
font-size: 15px;
} .header-tab li {
cursor: pointer;
margin-left: 6px;
} .wrapper {
height: 600px;
width: 100%;
margin: 0 auto;
} /* 其子元素为隐藏状态 */
.wrapper>div {
display: none;
} /* 隐藏滚动条 */
.header-tab::-webkit-scrollbar {
display: none
} /* 添加下划线 */
.add2line {
color: #3385ff;
border-bottom: 1px solid #3385ff;
}
</style>
</head> <body>
<nav class="header">
<ul class="header-tab" id="box">
<li class="add2line">更新内容</li>
<li>关注</li>
<li>热点</li>
<li>要闻</li>
<li>我的生活</li>
<li>国际新闻</li>
<li>态度公开课</li>
<li>新时代</li>
<li>抖音视频</li>
</ul>
</nav>
<main class="wrapper">
<div class="show content">
页面1
</div>
<div class="content">
页面2
</div>
</div>
<div class="content">
页面3
</div>
<div class="content">
页面4
</div>
<div class="content">
页面5
</div>
<div class="content">
页面6
</div>
<div class="content">
页面7
</div>
<div class="content">
页面8
</div>
<div class="content">
页面9
</div>
</main>
</body> </html>
<script>
window.onload = function () {
var doc = document
isShow()
function isShow() {
var liArr = doc.querySelectorAll('#box > li')
var divArr = doc.querySelectorAll('.wrapper .content')
for (var i = 0; i < liArr.length; i++) {
liArr[i].index = i;
liArr[i].onclick = function () {
for (var j = 0; j < liArr.length; j++) {
liArr[j].className = ''
divArr[j].className = ''
}
divArr[this.index].className = 'show'
liArr[this.index].className = 'add2line'
}
}
}
// 当前视窗的宽度
var WINDOW_OFFSETWIDTH = doc.documentElement.clientWidth
var liArr = doc.querySelectorAll('#box > li')
for (var i = 0; i < liArr.length; i++) {
liArr[i].addEventListener('click', function (e) {
// 获取当前点击元素的宽度
var itemWidth = this.offsetWidth
// 当前事件对象相对移动的距离
var moveX = e.target.offsetLeft
// 目标居中的距离 = (当前元素距离左边的相对距离 / 2)+ (视口距离 / 2)
var left = moveX - (WINDOW_OFFSETWIDTH / 2) + (itemWidth / 2)
doc.getElementById('box').scrollLeft = left
})
}
}
</script>
js滑动导航栏点击后居中效果的更多相关文章
- ViewPager+GridView实现首页导航栏布局分页效果
如图是效果图用ViewPager+GridView实现首页导航栏布局分页效果来实现的效果 Demo下载地址:http://download.csdn.net/detail/qq_29774291/96 ...
- Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)
Vue 事件监听实现导航栏吸顶效果(页面滚动后定位) Howie126313 关注 2017.11.19 15:05* 字数 100 阅读 3154评论 0喜欢 0 所说的吸顶效果就是在页面没有滑动之 ...
- JS面向对象方法(一): 使用原生JS 实现导航栏下多级分类弹出效果
利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类 代码如下: CSS部分: 在原来的目标:hover样式中 增加 .hover状态 li ...
- mpvue实战-手势滑动导航栏
写点东西记录一下美好时光,上周学习了一下通过mpuve开发微信小程序,看完文档,就准备撸起袖子加油干的时候,一开始就被支持手势滑动的导航栏给搞懵逼了.求助一波百度和谷歌未果后,只能自己动脑动手!为了给 ...
- 在UWP中页面滑动导航栏置顶
最近在研究掌上英雄联盟,主要是用来给自己看新闻,顺便copy个界面改一下段位装装逼,可是在我copy的时候发现这个东西 当你滑动到一定距离的时候导航栏会置顶不动,这个特性在微博和淘宝都有,我看了@ms ...
- Bootstrap,导航栏点击效果修复(补)
前言: 昨天晚上休息,忘记发博客了.对于学习这件是,还是需要坚持的.想想自建一个Jekyll博客模版还是很兴奋的,话不多说,看正文吧! 关于开发: 先看个Demo吧,点这里.你会发现,点击是没有效果 ...
- js实现导航栏的吸顶操作
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- js动态控制导航栏样式
导航栏一般做为母版页,为了使增加用户体验,往往在用户进入某个页面给予导航栏相应的样式,这里可以用js动态添加 <div class="box_left fl"> < ...
- 原生js实现导航栏吸顶
实现滑动滚动条让导航栏吸顶原理:主要是通过监听scroll,设定一个滚动条垂直位移作为临界,让导航栏吸顶或者取消吸顶. 话不多说了,代码如下: window.onscroll = function ( ...
随机推荐
- HDU3844 Mining Your Own Business
HDU3844 Mining Your Own Business 问题描述John Digger是一个大型illudium phosdex矿的所有者.该矿山由一系列隧道组成,这些隧道在各个大型交叉口相 ...
- E - D Tree HDU - 4812 点分治+逆元
这道题非常巧妙!!! 我们进行点分治的时候,算出当前子节点的所有子树中的节点,到当前节点节点的儿子节点的距离,如下图意思就是 当前节点的红色节点,我们要求出红色节点的儿子节点绿色节点,所有绿色的子树节 ...
- 操作SDO_GEOMETRY字段
读取SDO_GEOMETRY字段 select to_char(regexp_replace(sdo_util.to_gmlgeometry(t.intsxn_geom),'</?[^> ...
- H3C 常用设备管理命令
- @51nod - 1196/1197/1198@ 字符串的数量
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @description@ ...
- Android ListView性能优化实例讲解
前言: 对于ListView,大家绝对都不会陌生,只要是做过Android开发的人,哪有不用ListView的呢? 只要是用过ListView的人,哪有不关心对它性能优化的呢? 关于如何对ListVi ...
- 永久设置anaconda的环境变量
安装anaconda后都显示install seccessful,可是输入anaconda 终端却显示“未找到命令” 原因是没有添加环境变量,按照如下方式将环境变量添加的安装路径下: emport P ...
- HTML静态网页--表单验证和事件
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- js键盘按下移动元素
文章地址 https://www.cnblogs.com/sandraryan/ 功能: 点击上下左右按钮,移动元素 <!DOCTYPE html> <html lang=" ...
- [转]React入门看这篇就够了
摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...