前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swiper宽度超出后自动适应的tab关联切换导航

swiper宽度超出后自动适应的tab关联切换导航

作者头像
德顺
发布2019-11-13 14:12:14
1.9K0
发布2019-11-13 14:12:14
举报
文章被收录于专栏:前端资源前端资源

今天需要写一个 tab 切换,上面一个可以左右滑动,点击上面的 tab 块,下面的跟着切换。

其实 swiper 就可以实现,代码如下:

HTML:

代码语言:javascript
复制
<div class="container">
    <div class="swiper-container" id="swiper-container1">
        <div class="swiper-wrapper">
            <div class="swiper-slide active-nav">
                版块1
            </div>
            <div class="swiper-slide">
                版块2
            </div>
            <div class="swiper-slide">
                版块3
            </div>
            <div class="swiper-slide">
                版块4
            </div>
            <div class="swiper-slide">
                版块5
            </div>
            <div class="swiper-slide">
                版块6
            </div>
            <div class="swiper-slide">
                版块7
            </div>
            <div class="swiper-slide">
                版块8
            </div>
        </div>
    </div>
    <div class="swiper-container" id="swiper-container2">
        <div class="swiper-wrapper">
            <div class="swiper-slide blue-slide">slider1</div>
            <div class="swiper-slide red-slide">slider2</div>
            <div class="swiper-slide orange-slide">slider3</div>
            <div class="swiper-slide green-slide">slider4</div>
            <div class="swiper-slide pink-slide">slider5</div>
            <div class="swiper-slide blue-slide">slider6</div>
            <div class="swiper-slide red-slide">slider7</div>
            <div class="swiper-slide green-slide">slider8</div>
        </div>
    </div>
</div>

JS:

代码语言:javascript
复制
<script>
    var mySwiper1 = new Swiper('#swiper-container1', {
        watchSlidesProgress: true,
        watchSlidesVisibility: true,
        slideToClickedSlide: true,//点击跟随滑动
        slidesPerView: 4.5,//一屏显示的个数
        onTap: function () {
            mySwiper2.slideTo(mySwiper1.clickedIndex)
        }
    })
    var mySwiper2 = new Swiper('#swiper-container2', {
        onSlideChangeStart: function () {
            updateNavPosition()
        }
    })

    function updateNavPosition() {
        $('#swiper-container1 .active-nav').removeClass('active-nav')
        var activeNav = $('#swiper-container1 .swiper-slide').eq(mySwiper2.activeIndex).addClass('active-nav');
        console.log(activeNav.index())
        if (!activeNav.hasClass('swiper-slide-visible')) {
            if (activeNav.index() > mySwiper1.activeIndex) {
                var thumbsPerNav = Math.floor(mySwiper1.width / activeNav.width()) - 1
                console.log(thumbsPerNav.index())
                mySwiper1.slideTo(activeNav.index() - thumbsPerNav)
            } else {
                mySwiper1.slideTo(activeNav.index())
            }
        }
    }
</script>

声明:本文由w3h5原创,转载请注明出处:《swiper宽度超出后自动适应的tab关联切换导航》 https://cloud.tencent.com/developer/article/1538129

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档