antd autoplay为true时不轮播_ES6公用立体轮播组件的封装及使用

ES6公用立体轮播组件的封装及使用
源码github链接:https://github.com/XieTongXue/how-to/tree/master/carousel-3d

1、效果展示

b71980fed0357b7b161e26cb160fd439.gif

2、容易产生bug的点

当前图片需要一个背景框,如上图所见白色框,白色框为漂浮于当前轮播图片上方;轮播图可以点击跳转到其他网页,但是由于存在层级关系,白色款会挡住轮播图,导致无法跳转

2.1解决思路

将白色框设置为a链接,当图片滚动的时候设置a链接跳转链接为当前轮播图应该跳转的链接,如头图。

3、公用组件源码

命名poster.js

class Poster {
    
  constructor(Poster) {
    
    let self = this;
    this.Poster = Poster;
    this.posterList = Poster.find(".poster-list");
    this.posterItems = Poster.find(".poster-item");
    this.firstPosterItem = this.posterItems.first();
    this.lastPosterItem = this.posterItems.last();
    this.prevBtn = this.Poster.find(".poster-prev-btn");
    this.nextBtn = this.Poster.find(".poster-next-btn");
    this.setting = {
    
        "width":"760", // 轮播图宽度(比如此例子为三张图片可视区域宽度)
        "height":"248", // 轮播图高度(比如此例子为三张图片可视区域高度)
        "posterWidth":"610", // 当前图片宽度
        "posterHeight":"248", // 当前图片高度
        "scale":"0.8", // 非当前图片缩放比例
        "speed":"1000", // 动画时长
        "isAutoplay":"true", // 是否自动播放
        "dealy":"1000" // 切换间隔
    }
    $.extend(this.setting,this.getSetting())
    this.setFirstPosition();
    this.setSlicePosition();
    this.rotateFlag = true;
    this.prevBtn.bind("click",function(){
    
        if(self.rotateFlag){
    
            self.rotateFlag = false;
            self.rotateAnimate("left")
        }
    });
    this.nextBtn.bind("click",function(){
    
        if(self.rotateFlag){
    
            self.rotateFlag = false;
            self.rotateAnimate("right")
        }
    });
    if(this.setting.isAutoplay){
    
        this.autoPlay();
        this.Poster.hover(function(){
    clearInterval(self.timer)},function(){
    self.autoPlay()})
    }
  }
  autoPlay () {
    
    this.prevBtn.click();
    let that = this;
    this.timer =  window.setInterval(function(){
    
        that.prevBtn.click();
    },that.setting.dealy)
  }
  rotateAnimate (type) {
    
      let that = this;
      let zIndexArr = [];
      if(type == "left"){
    
        this.posterItems.e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
antd使用swiper实现轮播图的上下切换步骤如下: 1. 安装Swiper插件 在终端或命令行中使用npm或yarn安装swiper插件: ``` npm install swiper或yarn add swiper ``` 2. 引入Swiper插件 在需要使用swiper的组件中引入swiper插件: ```js import Swiper from 'swiper'; import 'swiper/swiper-bundle.css'; ``` 3. 初始化Swiper 在组件的生命周期函数中初始化Swiper: ```js componentDidMount() { new Swiper('.swiper-container', { direction: 'vertical', // 垂直方向轮播 loop: true, // 循环轮播 autoplay: true, // 自动轮播 }); } ``` 4. 编写轮播图 在组件中编写轮播图的HTML结构: ```jsx <div className="swiper-container"> <div className="swiper-wrapper"> <div className="swiper-slide">轮播图1</div> <div className="swiper-slide">轮播图2</div> <div className="swiper-slide">轮播图3</div> </div> </div> ``` 其中,`.swiper-container`表示轮播图容器,`.swiper-wrapper`表示轮播图的包裹层,`.swiper-slide`表示每个轮播图项。 5. 设置样式 设置轮播图的样式,例如: ```css .swiper-container { height: 300px; } .swiper-slide { background-color: #ccc; height: 300px; display: flex; justify-content: center; align-items: center; } ``` 其中,`.swiper-container`的高度需要设置为轮播图的高度,`.swiper-slide`需要设置高度和居中样式。 6. 实现轮播图的上下切换 在初始化Swiper,设置`direction: 'vertical'`表示垂直方向轮播,即可实现轮播图的上下切换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值