微信小程序之判断页面滚动方向的示例代码


Posted in Javascript onAugust 30, 2018

微信小程序中如果判断页面滚动方向?

解决方案

1.用到微信小程序API

获取页面实际高度 nodesRef.boundingClientRect([callback])

监听用户滑动页面事件onPageScroll。

2.获取页面实际高度

<!--WXML-->
<view id="box">
  <view class="list" wx:for="{{List}}" wx:key="List{{index}}">
    <image mode='aspectFill' class='list_img' src="{{item.imgUrl}}" ></image>
  </view>
</view>
/* JS */
 // 封装函数获取ID为box的元素实际高度 
 getScrollHeight: function() {
  wx.createSelectorQuery().select('#box').boundingClientRect((rect) => {
   this.setData({
    scrollHeight: rect.height
   })
   console.log(this.data.scrollHeight)
  }).exec()
 },
 // 假设数据请求
 getDataList: function() {
  wx.request({
   url: 'test.php', //仅为示例,并非真实的接口地址
   success: function(res) {
   // 如果该元素下面的数据是动态获取的,此方法在wx.request请求成功的回调函数中调用
    this.getScrollHeight()
   }
  })
 },

3.监听用户滑动页面事件

//监听用户滑动页面事件
 onPageScroll: function(e) {
  
  if (e.scrollTop <= 0) {
   // 滚动到最顶部
   e.scrollTop = 0;
  } else if (e.scrollTop > this.data.scrollHeight) {
   // 滚动到最底部
   e.scrollTop = this.data.scrollHeight;
  }
  if (e.scrollTop > this.data.scrollTop || e.scrollTop >= this.data.scrollHeight) {
   //向下滚动 
   console.log('向下 ', this.data.scrollHeight)
  } else {
   //向上滚动 
   console.log('向上滚动 ', this.data.scrollHeight)
  }
  //给scrollTop重新赋值 
  this.setData({
   scrollTop: e.scrollTop
  })
 },

PS:微信小程序滚动到某个位置改变效果

<scroll-view>
<view>Some of the words<view>
<view bindscroll="scroll" class="{{variable>200 ? 'class1' : 'class2'}}"</view>
</scroll-view>
//JS文件
 //滚动监听
 scroll: function (e) {
 this.setData({
  scrollTop:e.detail.scrollTop
 })
 }

其中,variable为全局变量,class1、class2即为相应的css

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
JQuery ztree 异步加载实例讲解
Feb 25 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
Angularjs中数据绑定的实例详解
Aug 25 Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 Javascript
详解vue项目中使用token的身份验证的简单实践
Mar 08 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
Aug 30 #Javascript
在Vue methods中调用filters里的过滤器实例
Aug 30 #Javascript
vue 根据数组中某一项的值进行排序的方法
Aug 30 #Javascript
对vue中methods互相调用的方法详解
Aug 30 #Javascript
原生JS+HTML5实现的可调节写字板功能示例
Aug 30 #Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 #Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 #jQuery
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
UCenter Home二次开发指南
2009/05/28 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
js正则相关知识点专题
2018/05/10 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
Python字典简介以及用法详解
2016/11/15 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python制作词云的方法
2018/01/03 Python
对numpy中shape的深入理解
2018/06/15 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
python 操作hive pyhs2方式
2019/12/21 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Python datetime模块的使用示例
2021/02/02 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
大学生实习证明范本
2014/01/15 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
活动总结新闻稿
2014/08/30 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
运动会通讯稿600字
2015/07/20 职场文书
2016父亲节感恩话语
2015/12/09 职场文书