沉浸式阅读
Beta
原创

原生js实现横向 tab 栏切换,选中项自动滚动居中

     订阅 JavaScript教程     2022-03-19     www.mbkfw.com    小黑    223    0    0    1    2022-03-19
学习要点:需要用代码测试

css:

<style>
        .container {
            height: 200px;
            width: 800px;
            background-color: #eee;
            white-space: nowrap;
            overflow: auto;
            position: relative;
            
            scroll-behavior: smooth; 
            margin: 0 auto;
        }
        .item {
            width: 220px;
            height: 100px;
            background-color: blue;
            display: inline-block;
            text-align: center;
            line-height: 100px;
        }
        .item:nth-child(2n) {
            background-color: pink;
        }
    </style>


html:

 <div class="container">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
        <div class="item">6</div>
        <div class="item">7</div>
        <div class="item">8</div>
        <div class="item">9</div>
        <div class="item">10</div>
    </div>


JS:

<script>
        // 获取到 container 整个盒子
        var container = document.querySelector(".container");

        // 获取包裹盒子 container.offsetWidth
        var containerW = container.offsetWidth;

        // 找到所有需要被点击的 item 的集合
        var itemList = document.querySelectorAll(".item");

        // 遍历数组
        for (let i = 0; i < itemList.length; i++) {
            // 给每个元素添加点击事件
            itemList[i].onclick = function () {

                // 获取到当前点击元素的 offsetLeft  - 包裹盒子 offsetWidth 的一半 + 当前点击元素 offsetWidth 的一半
                var scrollLeftNum =itemList[i].offsetLeft - containerW / 2 + itemList[i].offsetWidth / 2; 
                console.log(scrollLeftNum,'距离')

                // 赋值
                container.scrollLeft = scrollLeftNum;
            }
        }
</script>


注意:( 如果不想要横向滚动条 )
在最外层包裹的盒子加上样式 :

   .container::-webkit-scrollbar {
            display: none;
    }


本文标题: 原生js实现横向 tab 栏切换,选中项自动滚动居中

本文链接: https://www.mbkfw.com/course/1039.html (转载时请注明来源链接)

本文说明: 有问题或投稿请发送至: 邮箱/kf@dtmuban.com    QQ/290948585

特别鸣谢: 如果您觉得本文对您有帮助,请给我们一个小小的赞,收藏本文更利于反复学习哦!

 
本文标签: #tab #切换 #居中 #移动端 #h5
destoon程序前端开发标签生成器

下班PC阅读不方便?

手机也可以随时学习开发

微信关注公众号“商企云服”
"模板开发网前端开发教学"
每日干货技术分享
 
0

圈友点评

文明上网理性发言,请遵守网络评论服务协议


色彩
×

《客户实名在线注册登记》售后一直都在!

关注

微信
关注

微信扫一扫
不同的环境体验

幸运大转盘,好礼等您拿

模板开发网公众号

模板开发网微信小程序

代授权

程序
授权

黑小二

联系
客服

很高兴为您服务
尊敬的用户,欢迎您咨询,我们为新用户准备了优惠好礼。咨询客服

联系客服:

在线QQ: 290948585

客服电话: 18605917465

E_mail邮箱: kf@dtmuban.com

微信公众号: 商企云服

微信小程序: 模板开发

QQ客服 微信客服DT授权代办 在线交谈 智能小云

工作时间:

周一至周五: 09:00 - 18:00

APP下载

安卓
APK

模板开发网安卓版APP

反馈

我要
反馈