react圆柱轮播图

本文介绍了一种自定义实现React圆柱轮播图的方法,避免了使用swiper库带来的问题。通过监听手指滑动,改变卡片的className及CSS动画,实现了视觉和交互效果。文中详细阐述了实现思路,包括构造方法、render方法、滑动判断和处理方法等步骤。
摘要由CSDN通过智能技术生成

写在前面

最近需要做一个移动端轮播图,以达到下图的效果:

本来使用swiper,但效果不尽如人意。因为使用swiper实现的轮播图是水平排列的。比如Slide6是中间的图,那么我希望整个页面只显示Slide5,Slide6,Slide7,但若使用swiper,Slide5的左边仍会显示出一点Slide4,Slide7的右边也仍会显示出一点Slide8。而且在同事的手机微博中打开,动画效果十分诡异。当然,上述问题极有可能是因为我不太会使用swiper。但是时间紧任务重,我不想在此时去研究如何使用swiper来达到一个最好的效果,使得视觉和交互都满意。

所以,我决定还是自己动手写一个吧。

实现思想

下面是从上往下看的草图,是我大致想要实现的:

当手指向右滑动的时候,原left到top,原top到right,原right到bottom,原bottom中的一张卡片到left。

当手指向左滑动的时候,原right到top,原top到left,原left到bottom,原bottom中到一张卡片到right。

原理:原卡片dom位置不变,当左滑右滑时,卡片的className发生变化。再加上css动画效果,就可以实现符合要求的视觉和交互。(easy)

具体实现

1.创建一个继承React.Component的类并export。

2.覆盖构造方法:

  constructor(props) {
    super(props);
    this.state = {
      left: props.left || 0
    };
  }

【解释】我们只需要知道当前处于left的位置的卡片ind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值