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


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 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
JavaScript 捕获窗口关闭事件
Jul 26 Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 Javascript
js鼠标左右键 键盘值小结
Jun 11 Javascript
JavaScript中的私有/静态属性介绍
Jul 26 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
子页向父页传值示例
Nov 27 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
Three.js获取鼠标点击的三维坐标示例代码
Mar 24 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
关于Vue中的options选项
Mar 22 Vue.js
解决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
url decode problem 解决方法
2011/12/26 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
节约电力资源的建议书
2014/03/12 职场文书
经典商业广告词
2014/03/13 职场文书
个人简历自荐信
2014/06/26 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
迎国庆演讲稿
2014/09/15 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
python 字典和列表嵌套用法详解
2021/06/29 Python
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python