项目中用到了滚动导航,但是默认的滚动条太丑了,只好用js自己模拟了一个。凑合用可以,不算完美。希望以后有机会再来修饰一下。

先来看下最终效果:
最终效果
先看html结构:
<div id='root' class="root"> <ul class="list" id="list"> <li>全单1</li> <li>全部菜2单</li> <li>全部3单</li> <li>菜单4</li> <li>全菜单</li> <li>全部5菜单</li> <li>全6单</li> <li>全6部菜单</li> <li>全菜7单</li> <li>全8单</li> <li>全部5菜单</li> <li>全6单</li> <li>全6部菜单</li> <li>全菜7单</li> <li>全8单</li> <li>全9部菜单</li> <li>全10单</li> <li>全11部单</li> <li>菜2单</li> <li>全菜12单</li> <li>全32部菜单</li> </ul> </div>
说一下,末尾我给加了阴影的效果:
.root:before{
display: block;
content: '';
width: 20px;
height:100%;
background: rgba(111,111,111,0);
box-shadow: 2px 2px 32px 2px #999;
position: absolute;
right:-20px;
top:0;
}
其它的样式代码:
*{
margin: 0;
padding:0;
font-family: "Microsoft YaHei UI";
}
#root{
height:60px;
width: 800px;
white-space: nowrap;
overflow: hidden;
-webkit-overflow-scrolling: touch;
white-space: nowrap;
position: relative;
border-bottom: 1px solid #eee;
padding-right: 20px;
background-color: #f5f5f5;
margin-left: 100px;
margin-top: 50px;
}
.root:before{
display: block;
content: '';
width: 20px;
height:100%;
background: rgba(111,111,111,0);
box-shadow: 2px 2px 32px 2px #999;
position: absolute;
right:-20px;
top:0;
}
.list{
position: absolute;
left:0;
top:0;
/*width: 100%;*/ /*不能为100%,不然宽度只有父容器的宽度,我掉进这个坑了。*/
transition: all 1s;
height:100%;
line-height: 2.5;
}
.on{
color:red;
font-weight: bold;
}
.off{
color: #000;
font-weight:normal;
}
.list li{
display: inline-block;
padding:10px 20px;
cursor: pointer;
}
下面是js的逻辑部分:
var box = document.getElementById('root'); //外面的容器。
var listBox = document.getElementById('list'); //ul列表。主要是移动它的left值
var list = document.getElementsByTagName('li');//所有列表元素
var width = box.clientWidth /2; //为了判断是左滑还是右滑
var totalWidth = 0;
for(let i=0;i<list.length;i++){
totalWidth = totalWidth + list[i].offsetWidth; //所有列表元素的总宽度
}
for(let i=0;i<list.length;i++){
var _offset = totalWidth - box.clientWidth; //右边的偏移量
list[i].addEventListener('click', function (e) {
for(let j=0;j<list.length;j++){
list[j].className = 'off'; //移除所有元素的样式
}
list[i].className = 'on'; //给点击的元素添加样式
var offset =totalWidth - (Math.abs(listBox.offsetLeft) + box.clientWidth) + 100; //右边的偏移量 = 所有元素宽度之和 - (ul容器的左偏移量 + 父容器的宽度)
if(e.pageX > width && offset > 0){ //点击右侧并且右侧的偏移量大于0,左滑。
listBox.style.left = (listBox.offsetLeft-200) + 'px';
}else if(e.pageX > width && offset > 200){ //临界位置,,右侧滚动到末尾
listBox.style.left = -_offset + 'px';
}
if(e.pageX < width && listBox.offsetLeft < -200) { //点击左侧并且左侧的偏移量小于0,左滑。
listBox.style.left = (listBox.offsetLeft + 200) + 'px';
}else if(e.pageX < width && listBox.offsetLeft < 0){ //临界位置,左侧滚到开始的位置
listBox.style.left = 0
}
});
}
点击如下所示:
还有些不完善的地方,求各位大神指正。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js水平滚动菜单导航
# js水平滚动菜单
# js水平单导航
# 利用Js+Css实现折纸动态导航效果实例源码
# JS+CSS实现鼠标滑过时动态翻滚的导航条效果
# javascript实现的鼠标悬停时动态翻滚的导航条
# JS实现移动端可折叠导航菜单(现代都市风)
# JS无限级导航菜单实现方法
# vuejs 切换导航条高亮(路由菜单高亮)的方法示例
# 原生JS实现导航下拉菜单效果
# 如何使用wheelnav.js构建酷炫的动态导航菜单
# 偏移量
# 有机会
# 大神
# 再来
# 我给
# 所示
# 好用
# 能为
# 掉进
# 先看
# 不完善
# 大家多多
# 移除
# 滚动条
# 主要是
# width
# content
# height
# px
# abs
相关文章:
如何制作算命网站,怎么注册算命网站?
如何快速搭建响应式可视化网站?
大同网页,大同瑞慈医院官网?
如何在腾讯云服务器上快速搭建个人网站?
如何快速生成ASP一键建站模板并优化安全性?
北京网站制作网页,网站升级改版需要多久?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何快速生成高效建站系统源代码?
如何挑选最适合建站的高性能VPS主机?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
Python lxml的etree和ElementTree有什么区别
如何快速完成中国万网建站详细流程?
建站主机与虚拟主机有何区别?如何选择最优方案?
全景视频制作网站有哪些,全景图怎么做成网页?
网站app免费制作软件,能免费看各大网站视频的手机app?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
个人摄影网站制作流程,摄影爱好者都去什么网站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何撰写建站申请书?关键要点有哪些?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
自助网站制作软件,个人如何自助建网站?
*服务器网站为何频现安全漏洞?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何选择可靠的免备案建站服务器?
如何用虚拟主机快速搭建网站?详细步骤解析
如何在建站主机中优化服务器配置?
代刷网站制作软件,别人代刷火车票靠谱吗?
建站之星如何取消后台验证码生成?
如何在Windows虚拟主机上快速搭建网站?
建站org新手必看:2024最新搭建流程与模板选择技巧
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何在IIS7上新建站点并设置安全权限?
建站主机SSH密钥生成步骤及常见问题解答?
如何快速生成专业多端适配建站电话?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
如何在阿里云通过域名搭建网站?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
定制建站价位费用解析与套餐推荐全攻略
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
建站三合一如何选?哪家性价比更高?
如何在万网自助建站中设置域名及备案?
如何快速搭建高效简练网站?
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星ASP如何实现CMS高效搭建与安全管理?
网站制作价目表怎么做,珍爱网婚介费用多少?
*请认真填写需求信息,我们会在24小时内与您取得联系。