欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-26 17:16:16
微信小程序中如果判断页面滚动方向? 解决方案 1.用到微信小程序api 获取页面实际高度 nodesref.boundingclientrect([callbac...

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

解决方案

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

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