使用swiper实现多个slide无缝轮播

使用swiper实现多个slide无缝轮播

swiper-wrapper不能设置justify-content:center(不然轮播图会有空白)

HTML

	 <div class="swiper-container">
        <div class="swiper-wrapper">
          <div
            class="swiper-slide swiper-item"
            v-for="(item, index) in lunboList"
            :key="index"
          >
            <img :src="item.img" alt />
            <p>{{ item.desc }}</p>
          </div>
        </div>
      </div>

CSS

.swiper-container {
      margin: 0 auto;
      overflow: hidden;
      position: relative;
      width: 1310px;
      .swiper-wrapper {
        width: 100%;
        height: 100%;
        position: relative;
        transition-duration: 2000ms;
        display: flex; //这里一定不能有justify-content:center(不然轮播图会有空白)
        .swiper-item {
          width: 396px;
          img {
            width: 100%;
            height: 300px;
          }
          &:not(:last-child) {
            margin-right: 60px;
          }
        }
      }
    }

引入swiper

npm install swiper
import Swiper from "swiper";

使用Swiper

    lunboFun() {
      //let item = document.getElementsByClassName("swiper-wrapper")[0];
      //let moveLength = 0;
      // let timer = setInterval(() => {
      //   if (moveLength <= 2280) {
      //     //是否移动到尽头
      //    item.style = "transform:translateX(-" + moveLength + "px);";
      //     moveLength += 456;
      //   } else if (moveLength > 2280) {
      //     //是否移动到尽头
      //     moveLength = 456;
      //    item.style = "transform:translateX(-" + moveLength + "px);";
      //   }
      // }, 3000);
      var swiper = new Swiper(".swiper-container", {
        slidesPerView: "auto",//设置slider容器能够同时显示的slides数量
        loop: true,//循环
        loopedSlides: 5,//设置所要用到的loop个数(一般设置大于可视slide个数2个即可)。
        speed: 2000, //匀速时间
        centeredSlides: true,//设定为true时,active slide会居中,而不是默认状态下的居左。
        loopAdditionalSlides: 3,//在slides前后复制若干个slide,,前后复制的个数不会大于原总个数。
        autoplay: {
          delay: 2000,//在每一屏延迟时间
        },
      });
    },
### 使用 Swiper 实现无缝循环轮播效果 为了实现无缝循环轮播效果,配置 `loop` 参数为 `true` 是关键。这使得当滑动到最后一张幻灯片时会自动回到第一张,反之亦然[^1]。 ```javascript var swiper = new Swiper('.swiper-container', { loop: true, // 循环模式选项 }); ``` 除了设置 `loop` 属性外,还需要确保 HTML 结构正确无误。下面是一个基本的例子来展示如何构建这样的组件: ```html <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="image1.jpg" alt=""></div> <div class="swiper-slide"><img src="image2.jpg" alt=""></div> <!-- 更slide --> </div> </div> <!-- 添加 Swiper 的 CSS 文件 --> <link rel="stylesheet" href="https://unpkg.com/swiper/css/swiper.min.css"> <!-- 加载 Swiper JS 库 --> <script src="https://unpkg.com/swiper/js/swiper.min.js"></script> ``` 对于给定的 `.lunbo` 类中的样式定义,这些规则可以应用于上述结构内的图像元素以保持一致性和美观性。 ```css .lunbo { width: 100%; height: 5.7rem; cursor: pointer; } .lunbo img { width: 100%; height: 100%; object-fit: cover; } ``` 值得注意的是,在实际应用中可能还需调整其他属性如 autoplay 或 pagination 来增强用户体验。例如启用自动播放功能可以通过如下方式完成: ```javascript var swiper = new Swiper('.swiper-container', { loop: true, autoplay: { delay: 2500, disableOnInteraction: false, }, }); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值