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


    在实际应用中,当某种手势被触发后,在用户没有放开鼠标或手指前,会一直识别为该手势。比如当用户触发左滑手势后,这时再向下滑动,仍要按照左滑手势来处理。
    可以定义一个标记来记录第一次识别到的手势,如果已识别出手势,后续的滑动操作就可以忽略,直到用户放开鼠标或手指。放开鼠标或手指操作可以通过绑定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 : "没有滑动",
        });
      },
    })
    
  • 相关阅读:
    nyoj 463-九九乘法表
    nyoj 458-小光棍数 (471)
    nyoj 457-大小写互换
    nyoj 455-黑色帽子
    nyoj 412-Same binary weight (bitset ,to_ulong())
    nyoj 399-整除个数 (整除)
    nyoj 366-D的小L (next_permutation())
    nyoj 324-猴子吃桃问题 (m[i] = (m[i-1] + 1) * 2)
    nyoj 283-对称排序 (sort)
    HBase 在人工智能场景的使用
  • 原文地址:https://www.cnblogs.com/sntetwt/p/8652585.html
Copyright © 2020-2023  润新知