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


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 相关文章推荐
Span元素的width属性无效果原因及解决方案
Jan 15 Javascript
JS中产生标识符方式的演变
Jun 12 Javascript
JavaScript之cookie技术详解
Nov 18 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
巧用canvas
Jan 21 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
vue el-table实现行内编辑功能
Dec 11 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
php jsonp单引号转义
2014/11/23 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
基于jQuery的表格操作插件
2010/04/22 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
基于Python的PIL库学习详解
2019/05/10 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
求职简历的自我评价怎样写好
2013/10/07 职场文书
入股协议书
2014/04/14 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
新郎结婚保证书
2015/02/26 职场文书
2015年团支书工作总结
2015/04/03 职场文书
元旦晚会开场白
2015/05/29 职场文书
导游词之青城山景区
2019/09/27 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers