zoukankan      html  css  js  c++  java
  • 01_微信监听页面滚动事件,两种方法哦!

    1:判断用户动作,“向上滑动” 或者 “向下滑动”,闲话不多说,直接上代码:

      方法1 ( 利用 bindtouchmove,缺点:可能会频繁操作 setData 方法 ) :

    <view 
          wx:for="{{list}}"
          id="{{item}}"
          wx:key="{{index}}"
          bindtouchmove="checktouchmove"
          class="knowledgeNodes">
          {{item}}
    </view>
    

      

    // 知识点 : bindtouchmove , 弊端 特别频繁的操作 setData 方法
    Page({
      data: {
        lastX: 0,          // 滑动开始x轴位置
        lastY: 0,          // 滑动开始y轴位置
      },
      
     // 判断用户动作,上滑或者下滑
     checktouchmove: function(event){
      var currentX = event.touches[0].pageX
      var currentY = event.touches[0].pageY
      var tx = currentX - this.data.lastX
      var ty = currentY - this.data.lastY
      var text = ""
      if (Math.abs(tx) <= Math.abs(ty)) {
        // 上下方向滑动
        if (ty < 0){ text = "向上滑动"
           // 操作 setData 方法改变 data 值     }else if (ty > 0){ text = "向下滑动"
           // 操作 setData 方法改变 data 值      }   }   console.log(text);   //将当前坐标进行保存以进行下一次计算   this.data.lastX = currentX   this.data.lastY = currentY  }
    })  

       方法2 ( 利用 bindtouchstart,bindtouchend,推荐用法,原因:用户开始滑动和结束滑动都是分别只有一个事件,消除了频繁操作setData的可能性 ) :

            // 判断用户动作,上滑或者下滑, data 中添加 firstTopY, lastTopY 两个参数
            // wxml中绑定事件 bindtouchstart = "moveStart" bindtouchend = "moveEnd"
    	moveStart: function(ent){
    		console.log(ent)
    		this.setData({
    			firstTopY: ent.changedTouches[0].pageY
    		})
    	},
    	moveEnd: function(ent){
    		console.log(ent)
    		this.setData({
    			lastTopY: ent.changedTouches[0].pageY
    		})
    		if(this.data.lastTopY > this.data.firstTopY){
    			console.log('下滑');
    		}else if(this.data.lastTopY < this.data.firstTopY){
    			console.log('上滑');
    		}else{
    			console.log('没动');
    		}
    	}    
    

      希望你能看懂,看懂的点个赞哦!!!看不懂的留言给源码!!!

  • 相关阅读:
    获取文件的MD5码(C#)
    存储过程查询表的记录数
    通用分页
    解析SQLServer事务日志压缩与删除的方法
    性能测试之测试工具(一)
    测试框架学习HttpRunner之功能扩展(十一)
    测试框架学习HttpRunner之Locust性能测试(十)
    测试框架学习之HttpRunner Validate & Prettify(九)
    测试框架学习之HttpRunner测试用例之用例分层设计(八)
    测试框架学习之HttpRunner用例执行 运行测试以及测试报告(七)
  • 原文地址:https://www.cnblogs.com/heshaoxu/p/9542798.html
Copyright © 2011-2022 走看看