zoukankan      html  css  js  c++  java
  • 小程序回弹组件

    js

    Component({
        /**
         * 组件的属性列表
         */
        properties: {
        },
        /**
         * 组件的初始数据
         */
        data: {
            deltaX: 0, // 左右滑动回弹距离
            _startx: 0, // 开始的位置x
            _starty: 0, // 开始的位置y
            _endx: 0, // 结束的位置x
            _elasticDir: 1, // 1 左回弹 2 右回弹 0 不回弹
            _flexBoxTap: true, // 是否点击事件
        },
        lifetimes: {
    
        },
        /**
         * 组件的方法列表
         */
        methods: {
            // 横向点击事件
            bindFlexBoxTap() {
                // 点击事件时阻止跳转全部活动列表
                this.data._flexBoxTap = true;
            },
            // 横向滚动到最左边事件
            bindscroll(e) {
                this.data._elasticDir = 0;
            },
            // 横向滑动到最右边触发
            bindscrolltolower(e) {
                let timer = setTimeout(() => {
                    this.data._elasticDir = 2;
                    clearTimeout(timer);
                }, 100);
            },
            // 横向触摸开始事件
            scrollTouchstart(e) {
                this.setData({
                    _startx: e.touches[0].pageX,
                    _starty: e.touches[0].pageY
                });
            },
            // 横向触摸移动事件
            scrollTouchmove(e) {
                this.data._flexBoxTap = false;
                let px = e.touches[0].pageX;
                let py = e.touches[0].pageY;
                let { _startx, _starty } = this.data;
                this.setData({ _endx: px });
                let deltaX = px - _startx;
                let deltaY = py - _starty;
                if (deltaY > 10 || deltaY < -10) return;
                if (deltaX < 50 && deltaX > -50) this.setData({ deltaX });
            },
            // 横向触摸结束事件
            scrollTouchend(e) {
                // 横向向右触摸移动事件才跳转
                let { _elasticDir, deltaX } = this.data;
                if (_elasticDir === 2) {
                    // 点击事件时阻止跳转全部活动列表
                    deltaX < 0 && !this.data._flexBoxTap && this.triggerEvent("goMore");
                }
                this.setData({ _startx: 0, _starty: 0, _endx: 0, deltaX: 0 });
            }
        }
    })
    

      wxss

    .flex_box {
        transition: 200ms ease-out;
    }
    
    .flex_box .mch_list_panel {
         100%;
        white-space: nowrap;
    }
    

      

  • 相关阅读:
    基于JFinal中搭建wopi协议支撑办法
    mysql 增加列
    国王分金币
    口算题卡升级版本
    elasticsearch牛人的日志列表
    牛B的大数据库
    golang --rune
    golang ---rune与byte
    golang学习笔记--接口
    golang学习笔记--函数和方法
  • 原文地址:https://www.cnblogs.com/peter-web/p/14690084.html
Copyright © 2011-2022 走看看