Heim > Fragen und Antworten > Hauptteil
Die Technologie, auf die ich jetzt klicke, ist in der Mitte. Wie kann ich auf andere Dinge klicken und in die Mitte gehen?
伊谢尔伦2017-06-30 09:54:13
点击哪个类型的时候,这个dom距离父级的dom的左边的距离是可以算的吧,
屏幕的宽度是可以算的吧,
dom的距离与屏幕一半宽的大小做比较,然后再判断时候移动和移动多少距离
女神的闺蜜爱上我2017-06-30 09:54:13
昨天刚好做了这个demo测试。不期而遇布局方式也与今日头条的一样。
JQ实现方式:
html
<ul class="nav" >
<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);
})
期待更好的方式。