容器中子元素点击滚动居中

效果截图:

 HTML:

<div class="type">
    <div class="type-wrapper">
         <div class="type-slide"><div class="img"></div></div>
         <div class="type-slide"><div class="img"></div></div>
         <div class="type-slide"><div class="img"></div></div>
         <div class="type-slide"><div class="img"></div></div>
         <div class="type-slide active"><div class="img"></div></div>
         <div class="type-slide"><div class="img"></div></div>
         <div class="type-slide"><div class="img">3D</div></div>
    </div>
</div>

 JS:

//点击滚动居中
$('.index02 .type-slide').click(function(){
     let target = $(this);
     let scrollDom = $('.index02 .type-wrapper');
     //滚动距离 = 目标左边距 + 目标一半宽度 + 容器当前已滚动距离 - 容器一半宽度 - 容器左侧边距
     let left = target.offset().left + target.width() / 2 + scrollDom.scrollLeft() - scrollDom.width() / 2 - scrollDom.offset().left;
     scrollDom.animate({scrollLeft:left},300)
})
posted @ 2024-01-18 10:23  枫落曳  阅读(7)  评论(0)    收藏  举报