• 微信小程序开发-滑动操作


    在实际应用中,当某种手势被触发后,在用户没有放开鼠标或手指前,会一直识别为该手势。比如当用户触发左滑手势后,这时再向下滑动,仍要按照左滑手势来处理。
    可以定义一个标记来记录第一次识别到的手势,如果已识别出手势,后续的滑动操作就可以忽略,直到用户放开鼠标或手指。放开鼠标或手指操作可以通过绑定handletouchend事件来处理。

    Page({
      data: {
        lastX: 0,
        lastY: 0,
        text : "没有滑动",
        currentGesture: 0,
      },
      handletouchmove: function(event) {
        console.log(event)
        if (this.data.currentGesture != 0){
          return
        }
        let currentX = event.touches[0].pageX
        let currentY = event.touches[0].pageY
        let tx = currentX - this.data.lastX
        let ty = currentY - this.data.lastY
        let text = ""
        //左右方向滑动
        if (Math.abs(tx) > Math.abs(ty)) {
          if (tx < 0) {
            text = "向左滑动"
            this.data.currentGesture = 1
          }
          else if (tx > 0) {
            text = "向右滑动"
            this.data.currentGesture = 2
          }
    
        }
        //上下方向滑动
        else {
          if (ty < 0){
            text = "向上滑动"
            this.data.currentGesture = 3
    
          }
          else if (ty > 0) {
            text = "向下滑动"
            this.data.currentGesture = 4
          }
    
        }
    
        //将当前坐标进行保存以进行下一次计算
        this.data.lastX = currentX
        this.data.lastY = currentY
        this.setData({
          text : text,
        });
      },
    
      handletouchtart:function(event) { 
        console.log(event)
        this.data.lastX = event.touches[0].pageX
        this.data.lastY = event.touches[0].pageY
      },
      handletouchend:function(event) {
        console.log(event)
        this.data.currentGesture = 0
        this.setData({
          text : "没有滑动",
        });
      },
    })
    
  • 相关阅读:
    数据库_初学
    数据库—修改表的列
    做一个导航栏(bootstrap)
    几个比较常用的特效
    当、你想给一个目标挂上一个事件时
    图片轮播的几个小程序
    JS练习题 ( 下拉菜单;好友选中输入)
    Bootstrap 按钮和折叠插件
    Bootstrap 轮播插件
    Bootstrap 弹出框和警告框插件
  • 原文地址:https://www.cnblogs.com/sntetwt/p/8652585.html
Copyright © 2020-2023  润新知