html手机导航效果,原生js实现手机端导航滑动效果

代码如下:

导航效果

div,

li,

ul,

a {

margin: 0;

padding: 0;

}

ul,

li {

list-style: none;

}

ul {

width: 500px;

height: 35px;

display: block;

white-space: nowrap;

overflow: hidden;

overflow-x: auto;

border-bottom: 1px solid #dd3;

}

ul > li {

width: 60px;

height: 35px;

display: inline-block;

cursor: pointer;

color: #8d19f3;

font-size: 18px;

text-align: center;

line-height: 35px;

}

ul > li:not(:first-child) {

margin-left: 25px;

}

::-webkit-scrollbar {

width: 0;

height: 0;

}

  • 导航一
  • 导航二
  • 导航三
  • 导航四
  • 导航五
  • 导航六
  • 导航七
  • 导航八
  • 导航九
  • 导航十
  • 导航十一
  • 导航十二
  • 导航十三
  • 导航十四
  • 导航十五
  • 导航十六

var timer = null,

parentElement = document.querySelector(".box"),

childElement = document.querySelectorAll("li");

for (var i = 0, len = childElement.length; i < len; i++) {

childElement[i].index = i;

childElement[i].onclick = function() {

var offsetLeft = childElement[this.index].offsetLeft,

scrollX = parentElement.scrollLeft,

clientX = parentElement.clientWidth,

childClientX = childElement[this.index].clientWidth;

var speed = offsetLeft - scrollX + childClientX / 2 - clientX / 2,

s = speed / 40,

totalX = speed + scrollX;

timer = setInterval(function() {

parentElement.scrollLeft += s;

if (

parentElement.scrollLeft <= 0 ||

parentElement.scrollLeft >= parentElement.scrollWidth - clientX ||

(speed > 0 && parentElement.scrollLeft > totalX) ||

(speed < 0 && parentElement.scrollLeft < totalX)

) {

clearInterval(timer);

}

}, 10);

};

}

效果如图所示:

bVbjNyk

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值