1.0.0 • Published 2 years ago

react-swiper-lhc v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

E组件

这是滑动的基础布局,最终的滑动也就是改变第二层div的translateX值。再加上transition 过渡效果,即可实现整个区域的运动,而最外层元素设置了溢出隐藏,这样整体效果就是单张卡片在运动了。

具体使用

    import ReactSwipe from 'react-swipers'
    
    // swipers 的配置
    let opt = {
    distance: 620, // 每次移动的距离,卡片的真实宽度
    currentPoint: 1,// 初始位置,默认从0即第一个元素开始
    autoPlay: true, // 是否开启自动播放
    interval: 2000,  // 幻灯片切换时间,默认2000ms
    swTouchstart: (ev) => {

    },
    swTouchmove: (ev) => {

    },
    swTouchend: (ev) => {
        let data = {
            moved: ev.moved,
            originalPoint: ev.originalPoint,
            newPoint: ev.newPoint,
            cancelled: ev.cancelled
        }
        console.log(data);
        this.setState({
            curCard: ev.newPoint
        })
    }
    }
    
    // dom 部分
    // 第一层div
    <div className="card-swipe">
        // 第二层div  react-swipes生成一个className为 card-slide的div
        <ReactSwipe className="card-slide" options={ opt }>
            // 第三层,即本身的item
            this.state.card.length && this.state.card.map((item, index) => <div className="item" key={index}> </div>
        </ReactSwipe>
    </div>

demo

sandbox demo

todo

  • 现在把css完全暴露给使用者了,这样第二层div的宽度(第三层元素的宽度和)需要大家在代码中计算,不是很方便,后续会把这块逻辑放到组件里面去,开发者只需要配置卡片基础属性即可。
  • 卡片滑动过程想实现类似上面的缩放效果,目前需要在 swTouchmove swTouchend 钩子里面自己去实现,后面会把这个效果做到组件里面去,开发者选择是否开启。 -->