您的位置:首页技术文章
文章详情页

javascript - 哪位大神指导下,如何实现今日头条头部导航列表,点那个类型,哪种类型就居中了?

【字号: 日期:2023-04-27 13:30:32浏览:128作者:猪猪

问题描述

javascript - 哪位大神指导下,如何实现今日头条头部导航列表,点那个类型,哪种类型就居中了?现在点的科技,科技就在中间,如何点其他其他也跑到中间?

问题解答

回答1:

点击军事的时候,获得军事这个dom距离父级dom左边的距离,把拿到的距离除以2,然后做移动

回答2:

如果点最左边上的,居中的话左边不就是空白的了?

回答3:

点击哪个类型的时候,这个dom距离父级的dom的左边的距离是可以算的吧,屏幕的宽度是可以算的吧,dom的距离与屏幕一半宽的大小做比较,然后再判断时候移动和移动多少距离

回答4:

margin-left:-(x * this.index)px;判断当前点击对象的index 然后计算出偏移量

回答5:

昨天刚好做了这个demo测试。不期而遇布局方式也与今日头条的一样。JQ实现方式:

html

<ul > <li class='active'>第0个</a> <li>第1个</a> <li>第2个</a> <li>第3个</a> <li>第4个</a> <li>第5个</a> <li>第6个</a> <li>第7个</a> <li>第8个</a></ul

css

.nav{ white-space: nowrap; overflow-x: scroll; width: 100%; border-bottom: 1px solid #ccc;}.nav li{ display: inline-block; margin: 0 12px; line-height: 0.8rem; color: #222222; padding: 20px 0;}.nav .active{color:#F23030;}

jq

//导航条宽度var navW = $(’.navs’).width();//页面宽度var docW = $(document).width();$(’.nav li’).click(function(){ //移除样式 $(’.nav li’).removeClass(’active’); //当前添加样式 $(this).addClass(’active’); //当前li宽度 var thisW = $(this).width(); //要移动的距离 var left = $(’.nav’).scrollLeft() + ($(this).offset().left)-(docW/2 - thisW/2); $(’.nav’).animate({scrollLeft:left},300);})期待更好的方式。

标签: JavaScript