Rumah > Soal Jawab > teks badan
Teknologi yang saya klik sekarang berada di tengah-tengah. Bagaimana saya boleh mengklik pada perkara lain dan pergi ke tengah?
ringa_lee2017-06-30 09:54:13
Apabila mengklik Tentera, dapatkan jarak antara dom tentera dan sebelah kiri dom induk, bahagikan jarak dengan 2, dan kemudian gerakkannya
PHP中文网2017-06-30 09:54:13
Jika anda mengklik yang paling kiri dan memusatkannya, bukankah bahagian kiri akan kosong?
伊谢尔伦2017-06-30 09:54:13
Apabila anda klik pada jenis yang mana, jarak antara dom ini dan sebelah kiri dom induk boleh dikira
Lebar skrin boleh dikira
Bandingkan jarak dom dengan separuh lebar skrin. dan kemudian membuat pertimbangan Bila hendak bergerak dan sejauh mana hendak bergerak
迷茫2017-06-30 09:54:13
margin-left:-(x * this.index)px;
Tentukan indeks objek yang sedang diklik dan kemudian hitung offset
女神的闺蜜爱上我2017-06-30 09:54:13
Saya baru sahaja melakukan ujian demo ini semalam. Susun atur Unexpected Encounter juga sama seperti Toutiao.
Kaedah pelaksanaan 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);
})
期待更好的方式。