关于swiper 当前滑动值 loop:true时前后滑动值

swiper这个插件应该很多人用,今天主要说获取当前滑动的值

Swiper3|Swiper中文网

var swiper = new Swiper('.swiper-container', {
    pagination: '.swiper-pagination',
    paginationType: 'fraction',
    loop: true,
    onSlideChangeEnd:function(swiper){
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
    }
});

当前滑动的值会受loop值影响

首先是loop值,默认:false

如果为true,则开启loop模式,会在原本slide前后复制若干个slide(默认一个)并在合适的时候切换,让Swiper看起来是循环的

swiper.activeIndex(返回当前活动块(激活块)的索引。loop模式下注意该值会被加上复制的slide数)

loop: false,
    onSlideChangeEnd:function(swiper){
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
        console.log('测试loop:false时的值----',swiper.activeIndex)
    }

当loop:true时,滑到第6个继续滑到第一个时 打印的值是7(返回当前活动块(激活块)的索引。loop模式下注意该值会被加上复制的slide数)

loop: true,
    onSlideChangeEnd:function(swiper){
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
        console.log('测试loop:true时的值----',swiper.activeIndex)
    }

this.active

this.active 在loop:false时取不到值,在true时,第一次加载取不到值,只有触发滑动一次才会有值,而且这种看着貌似没什么为题,但是倒着滑动,取到的值就有问题了

loop: true,
    onSlideChangeEnd:function(swiper){
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
        console.log('测试loop:true时的值----',this.active)
    }

页面第一次加载时没值

触发一次滑动后

this.realIndex

(当前活动块的索引,与activeIndex不同的是,在loop模式下不会将复制的块的数量计算在内。)

loop: true,
    onSlideChangeEnd:function(swiper){
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
        console.log('测试loop:true时的值----',this.realIndex)
    }

this.active = $('.swiper-slide-active').attr('data-swiper-slide-index') (可以完美获取loop:true下 前后滑动当前的滑动值)

loop: true,
    onSlideChangeEnd:function(swiper){
        this.active = $('.swiper-slide-active').attr('data-swiper-slide-index')
        console.log('回调函数,swiper从一个slide过渡到另一个slide结束时执行')
        console.log('测试loop:true时的值----',this.active)
        console.log('加1的值---',Number(this.active)+1)
    }

向前滑动和向后滑动值都没有问题,值是从0开始,要和页面的值对应上 就要加1

如果是4.多版本的,和3.版本不一样 (找了对应的api好像都没3.之前的详细,可以参照下面几个)

Swiper API

中文api - Swiper中文网

on_Swiper4 API文档 (这个api里面有回调)

Swiper4.x 中文API

let swiper = new Swiper('.swiper-container', {
    autoplay:true,
    loop: true,
    pagination: { //页码 4.多版本页码可以显示具体数字
        el: '.swiper-pagination',
        type: 'fraction',
    },
				
    on:{//回调的方法写这里
		slideChangeTransitionEnd:function(swiper){ //loop模式下当前滚动的索引
		    console.log('--',this.realIndex+1);
		},
    }
});

//或者直接
//swiper.on('slideChangeTransitionEnd', function () {
//    console.log('slide changed',this.realIndex+1);
//});

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是使用 Swiper5 初始化一个垂直方向的轮播图,其中包含了许多配置项,下面我来一一解析: ```javascript var mySwiper1 = new Swiper(".m-mzw-swiper-a4 .swiper1", { direction: "vertical", // 设置为垂直方向 loop: true, // 无限循环 slidesPerView: "auto", // 自动根据容器宽度计算每页显示的图片数量 centeredSlides: true, // 居中显示轮播图 freeMode: true, // 自由模式,允许滑动到任意位置 watchSlidesVisibility: true, // 开启此选项后,仅在当前slide对应的swiper-slide-visible元素上添加active类名 // mousewheel: true // 是否开启鼠标滚轮控制 }); ``` - `direction: "vertical"`:设置轮播图方向为垂直方向,即上下滚动。 - `loop: true`:开启轮播图无限循环,即从最后一张图片切换到第一张图片,会自动继续切换到第二张图片。 - `slidesPerView: "auto"`:自动根据容器宽度计算每页显示的图片数量,即每个页面容纳的图片数量不固定。 - `centeredSlides: true`:居中显示轮播图,即当前显示的图片在居中位置。 - `freeMode: true`:自由模式,允许滑动到任意位置,而不是每次只能滑动到下一个或上一个图片。 - `watchSlidesVisibility: true`:开启此选项后,仅在当前 slide 对应的 `.swiper-slide-visible` 元素上添加 `active` 类名,可以用于控制样式。 - `mousewheel: true`:是否开启鼠标滚轮控制,这个选项被注释掉了,如果需要开启,可以取消注释。 除了这些常用的配置项之外,Swiper5 还有许多其他的配置项,可以根据实际需求进行配置。希望这些信息对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值