loop为true, slidesPerView为多个的时候,swiper精准获取激活的索引

本文介绍如何使用Swiper库创建一个具有循环滚动效果的轮播图,并详细展示了相关配置参数,如显示数量、间距及回调函数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
重点代码如下:


 <script>

        var swiper = new Swiper('.swiper-container', {
            slidesPerView: 3,   //显示几个slide
            spaceBetween: 30,  //slide之间的间距
            centeredSlides: true,
            loop: true,  //开启循环滚动
            initialSlide: 0,   //默认就是0
            pagination: {
                el: '.swiper-pagination',
                clickable: true,
            },
            on: {
                slideChangeTransitionStart: function () {
                    // 原生js添加
                   this.active =  document.querySelector('.swiper-slide-active').getAttribute('data-swiper-slide-index')
                    
                   // jq添加
                   // this.active = $('.swiper-slide-active').attr('data-swiper-slide-index')
                    console.log('测试loop:true时的值----', this.active)
                    // console.log('加1的值---', Number(this.active) + 1)

                },
            },
        });
    </script>

所有代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Swiper demo</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

    <!-- Link Swiper's CSS -->
    <link rel="stylesheet" href="../dist/css/swiper.min.css">
    <style>
        html,
        body {
            position: relative;
            /* height: 100%; */
        }

        body {
            background: #eee;
            font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
            font-size: 14px;
            color: #000;
            margin: 0;
            padding: 0;
        }

        .swiper-container {
            width: 100%;
            height: 100%;
        }

        .swiper-slide {
            text-align: center;
            font-size: 18px;
            background: #fff;
            height: 200px;
            /* Center slide text vertically */
            display: -webkit-box;
            display: -ms-flexbox;
            display: -webkit-flex;
            display: flex;
            -webkit-box-pack: center;
            -ms-flex-pack: center;
            -webkit-justify-content: center;
            justify-content: center;
            -webkit-box-align: center;
            -ms-flex-align: center;
            -webkit-align-items: center;
            align-items: center;
            transition: 300ms;
            transform: scale(0.8);
        }

        .swiper-slide-active,
        .swiper-slide-duplicate-active {
            transform: scale(1);
        }
    </style>
</head>

<body>
    <!-- Swiper -->
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide">Slide 1</div>
            <div class="swiper-slide">Slide 2</div>
            <div class="swiper-slide">Slide 3</div>
            <div class="swiper-slide">Slide 4</div>
            <div class="swiper-slide">Slide 5</div>
        </div>
        <!-- Add Pagination -->
        <div class="swiper-pagination"></div>
    </div>

    <!-- Swiper JS -->
    <script src="../dist/js/swiper.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.3/jquery.js"></script>

    <!-- Initialize Swiper -->
    <script>

        var swiper = new Swiper('.swiper-container', {
            slidesPerView: 3,
            spaceBetween: 30,
            centeredSlides: true,
            loop: true,
            initialSlide: 0,
            pagination: {
                el: '.swiper-pagination',
                clickable: true,
            },
            on: {
                slideChangeTransitionStart: function () {
                    // 原生js添加
                   this.active =  document.querySelector('.swiper-slide-active').getAttribute('data-swiper-slide-index')
                    
                   // jq添加
                   // 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)

                },
            },
        });
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃葡萄不吐葡萄皮嘻嘻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值