微信小程序左滑JS代码封装

根据网络上的做了一些封装,优化。原理都一样。


var param={
    movMax: 120,
    movChangeTriger: 30,
    getCurrentTouchItem:function(e){  //滑动块绑定的数据项

    },
    refreshTouchList:function(e) {//刷新方法

    },

};



function touchStart  (e) { //记录起点

    var currentItem = param.getCurrentTouchItem(e);
    currentItem.currentTouch = e.touches[0];
    currentItem.starttTouch = e.changedTouches[0];
}
function touchMove  (e) {


    var currentItem = param.getCurrentTouchItem(e);
    var currentTouch = currentItem.currentTouch;
    var nowTouch = e.touches[0];


    var movX = currentTouch.clientX - nowTouch.clientX;

    var isMovToLeft = movX > 0;



    movX += (currentItem.movX ? currentItem.movX : 0);

    if (movX > param.movMax || movX < 0) {
        return;
    }

    currentItem.currentTouch = nowTouch;
    if (isMovToLeft) {


        if (Math.abs(movX) > param.movMax) {

            movX = param.movMax;
        }

    } else {
        if (Math.abs(movX) < 0) {

            movX = 0;
        }
    }


    currentItem.stytle = "right:" + movX + "px;";
    currentItem.movX = movX;
    currentItem.isMovToLeft = isMovToLeft;

    param.refreshTouchList();



}

function touchEnd  (e) {


    var currentItem = param.getCurrentTouchItem(e);

    var movX = currentItem.movX;

    if (currentItem.isMovToLeft) {


        if (movX >= param.movChangeTriger) {

            movX = param.movMax;
        } else {
            movX = 0;
        }

    } else {
        if (movX < param.movMax - param.movChangeTriger) {

            movX = 0;
        } else {
            movX = param.movMax;
        }
    }

    currentItem.stytle = "right:" + movX + "px;";
    currentItem.movX = movX;

    param.refreshTouchList();

}



function setparam(param){
    param = param;
}


module.exports = {
    touchEnd: touchEnd,
    touchMove: touchMove,
    touchStart: touchStart,
    setparam: setparam,
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值