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


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 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
myeclipse安装jQuery插件的方法
Mar 29 Javascript
js添加table的行和列 具体实现方法
Jul 22 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
详解如何使用Vue2做服务端渲染
Mar 29 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 Javascript
Vue.js中v-bind指令的用法介绍
Mar 13 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
vue项目前端埋点的实现
2019/03/06 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python标准库之collections包的使用教程
2017/04/27 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
python 读取修改pcap包的例子
2019/07/23 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
学生会副主席竞聘书
2014/03/31 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
预备党员个人总结
2015/02/14 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
篮球拉拉队口号
2015/12/25 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
详解MySQL连接挂死的原因
2021/05/18 MySQL
Redis 哨兵集群的实现
2021/06/18 Redis
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
Python OpenCV实现图形检测示例详解
2022/04/08 Python
Windows server 2016服务器基本设置
2022/08/14 Servers