Swiper联动

5 篇文章 0 订阅

仅做个人收藏记录。

实例化两个swiper对象,点击上边的,下边的跟着一起滑动,swiper版本3.4.2

<div class="gt-swipertab">
                <div class="swipertabcontainer">
                    <div class="swiperprev" style="transform: rotate(180deg);">
                        <i class="layui-icon layui-icon-triangle-r"></i>
                    </div>
                    <div class="swipernext">
                        <i class="layui-icon layui-icon-triangle-r"></i>
                    </div>
                    <div class="swipertab">
                        <div class="swiper-wrapper">
                            <div class="swiper-slide selected">宅基地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>
                    </div>

                </div>
                <div class="swiper-container swipertabcnt">
                    <div class="swiper-wrapper">
                        <div class="swiper-slide swiper-no-swiping">宅基地1</div>
                        <div class="swiper-slide swiper-no-swiping">宅基地2</div>
                        <div class="swiper-slide swiper-no-swiping">宅基地3</div>
                        <div class="swiper-slide swiper-no-swiping">宅基地4</div>
                        <div class="swiper-slide swiper-no-swiping">宅基地5</div>
                        <div class="swiper-slide swiper-no-swiping">宅基地6</div>
                    </div>
                </div>
            </div>

 css

.gtmap .right-panel .carousel-box .gt-swipertab {
  border: 0;
  height: calc(100% - 50px);
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertab {
  overflow: hidden;
  left: 18px;
  right: 18px;
  border-right: 1px solid #dedede;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertab .swiper-slide {
  line-height: 30px;
  height: 30px;
  border: 1px solid #dedede;
  border-right: 0;
  box-sizing: border-box;
  font-size: 14px;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertab .selected {
  color: #fff;
  background-color: #1f88d1;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertab .selected:after {
  display: none;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertabcontainer {
  line-height: 30px;
  height: 30px;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swiperprev,
.gtmap .right-panel .carousel-box .gt-swipertab .swipernext {
  line-height: 30px;
  height: 30px;
  background-color: transparent;
  border: 0;
  width: 14px;
  color: #0090f0;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertabcnt {
  top: 30px;
  border: 0;
}

.gtmap .right-panel .carousel-box .gt-swipertab .swipertabcnt .swiper-slide {
  position: relative;
  overflow: hidden;
}

 js

//宅基地详情swiper渲染模块
        function setCurrentSlide(ele, index) {
            $(".swipertab .swiper-slide").removeClass("selected");
            ele.addClass("selected");
        }
        var swipertab = new Swiper('.swipertab', {
            //			设置slider容器能够同时显示的slides数量(carousel模式)。
            //			可以设置为number或者 'auto'则自动根据slides的宽度来设定数量。
            //			loop模式下如果设置为'auto'还需要设置另外一个参数loopedSlides。
            slidesPerView: 4,
            paginationClickable: true,//此参数设置为true时,点击分页器的指示点分页器会控制Swiper切换。
            spaceBetween: 0,//slide之间的距离(单位px)。
            freeMode: true,//默认为false,普通模式:slide滑动时只滑动一格,并自动贴合wrapper,设置为true则变为free模式,slide会根据惯性滑动且不会贴合。
            loop: false,//是否可循环
            prevButton: '.swiperprev',
            nextButton: '.swipernext',

        });


        var swipertabcnt = new Swiper('.swipertabcnt', {
            //freeModeSticky  设置为true 滑动会自动贴合
            direction: 'horizontal',//Slides的滑动方向,可设置水平(horizontal)或垂直(vertical)。
            loop: false,
            noSwiping: true,
            autoHeight: false//自动高度。设置为true时,wrapper和container会随着当前slide的高度而发生变化。
        });

        swipertab.slides.each(function (index, val) {
            var ele = $(this);
            ele.on("click", function () {
                console.log(ele);
                setCurrentSlide(ele, index);
                swipertabcnt.slideTo(index, 500, false);
            });
        });

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
swiperjs是一个非常流行的移动端轮播插件,可以用来实现左右联动和上下滚动的效果。 要实现左右联动上下滚动,我们首先需要在HTML中创建相应的结构。可以使用一个外层容器来包裹两个swiper实例,一个用来实现左右联动,另一个用来实现上下滚动。 设置左右联动swiper实例时,需要设置"direction"为"horizontal",并设置相应的宽度。可以使用CSS来控制外层容器的宽度和高度。 设置上下滚动的swiper实例时,需要设置"direction"为"vertical",并设置相应的高度。可以使用CSS来控制swiper的高度和样式。 在JavaScript中,我们需要初始化两个swiper实例,并设置它们的参数。可以通过"Swiper"构造函数来创建实例,并传入相应的配置参数。 对于左右联动swiper实例,我们可以添加"navigation"选项,用来显示左右箭头按钮。同时,我们还可以使用"controller"选项,将其与上下滚动的swiper实例进行控制关联。 对于上下滚动的swiper实例,我们可以添加"direction"选项,将其设置为"vertical",并可以使用"keyboard"选项来启用键盘控制。 通过上述的配置和设置,我们可以实现左右联动和上下滚动的效果。用户在左右滑动时,上下滚动的内容也会同步变化,从而实现了左右联动上下滚动的效果。 总之,通过swiperjs插件的灵活配置和丰富功能,我们可以很容易地实现左右联动和上下滚动的效果,为移动端的网页和应用增加交互和视觉上的吸引力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值