2022-05-24 工作记录--React-swiper3的运用 + 手动切换swiper后,自动播放停止

一、React-swiper3的运用

React中使用swiper3

  • 大致实现方法还是按照swiper官网里的步骤来的,只是引入swiper的方法些许有所不同☺️,小萝卜儿们请往下看哟~

第一步、安装swiper

先观察package.json中是否安装了swiper

  • 未安装滴话,就在终端输入:npm i swiper@3 或者 yarn add swiper@3
    • @3:限制安装的swiper版本为3.0(若想安装最新版本,省略即可)
  • 已安装滴话,就无需操作上述步骤;

第二步、引入swiper

1、在对应页面的jsx中输入以下代码:
import Swiper from "swiper"; // 引入swiper,实现轮播
2、在对应页面的less/css里导入swiper.css,比如:
@import "../../../node_modules/swiper/dist/css/swiper.css";

并参考swiper官网、根据项目需求写入以下代码:

 .swiper-container {
    width: 100%;
    height: 100%;
  }
  .swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
  
    /* 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;
  }

第三步、初始化swiper

❀ 在componentDidMount生命周期中 初始化swiper,比如:
componentDidMount() {
    // 定时器,防止轮播图只播放一次就不播放了【视情况而加】
    setTimeout(() => {
      // 初始化swiper
      new Swiper(".swiper-container1", {
        pagination: '.swiper-pagination',
        paginationClickable: true,
        autoplay: 1500, // 自动播放
        autoplayDisableOnInteraction: false, // 设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay。默认为true
        loop: true, // 循环播放
      });
    }, 500)
}

第四步、书写swiperhtml部分

❀ 方法同swiper官网上的用法,比如:(已进行数据交互☺️)
render() {
    return (
      <div>
        {/* Swiper */}
        <div className="swiper-container swiper-container1">
          <div className="swiper-wrapper">
            {
              this?.state?.imgData?.map((item, index) => {
                return (
                  <div className="swiper-slide swiper-slide1" key={index}>
                    <div className="banner_img">
                      <img src={item} alt="" />
                    </div>
                  </div>
                )
              })
            }
          </div>
          {/* Add Pagination */}
          <div className="swiper-pagination"></div>
        </div>
      </div>
    );
  }

最终效果,如下图:

在这里插入图片描述

二、手动切换swiper后,自动播放停止

1、问题分析

swiper轮播中,如果手动左右滑动轮播图 或 点击下方的小圆点切换轮播图后,轮播图就不会自动播放了。

2、问题解决

因为这是swiper3.x版本,所以查阅swiper官网swiper3.x版本的API文档 可找到如下图所示的属性 解决该问题。【其余版本在官网中查看对应文档即可哟~】

  • 即:初始化swiper时,设置autoplayDisableOnInteractionfalse

在这里插入图片描述
example:

componentDidMount() {
    // 定时器,防止轮播图只播放一次就不播放了
    setTimeout(() => {
      // 初始化swiper
      new Swiper(".swiper-container1", {
        pagination: '.swiper-pagination',
        paginationClickable: true,
        autoplay: 1500, // 自动播放
        autoplayDisableOnInteraction: false, // 设置为false,用户操作swiper之后自动切换不会停止,每次都会重新启动autoplay。默认为true
        loop: true, // 循环播放
      });
    }, 500)
}
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小呀小萝卜儿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值