onPageScroll微信小程序底部悬浮框滑到底部隐藏,其他情况显示

onPageScroll

利用onpageScroll监测屏幕的位置

优点

1.有点操作简单粗暴。

缺点

2.缺点固定值不能确定的时候会有偏差。需要借助另一个 功能组件SelectorQuery

使用方法

onPageScroll:function(res){
    console.log(res)
    if (res.scrollTop < 600){
      this.setData({ reachbottom: true })
    }else{
      this.setData({ reachbottom: false })
    }
  },

这个是文档里面关于onPageScroll(因为很多人说没有找到关于onPageScroll的文档

onPageScroll(Object object)

监听用户滑动页面事件。

参数对象

属性类型说明
scrollTop的页面在垂直方向已滚动的距离(单位:像素)

注意:请只在需要的时候才在页面中定义此方法,不要定义空方法。以减少不必要的事件派发对渲染层 - 逻辑层通信的影响。 注意:请避免在onPageScroll中过于频繁的执行setData等引起逻辑层-渲染层通信。的操作尤其是每次传输大量数据,会影响通信耗时。

 

表3-4页面构造器的参数

参数属性类型描述
数据宾语页面的初始数据
负载功能生命周期函数 - 监听页面加载,触发时机早于昂秀和onReady
onReady功能生命周期函数 - 监听页面初次渲染完成
展出功能生命周期函数 - 监听页面显示,触发事件早于onReady
onHide功能生命周期函数 - 监听页面隐藏
onunload的功能生命周期函数 - 监听页面卸载
onPullDownRefresh功能页面相关事件处理函数 - 监听用户下拉动作
onReachBottom功能页面上拉触底事件的处理函数
onShareAppMessage功能用户点击右上角转发
onPageScroll功能页面滚动触发事件的处理函数
其他任何可以添加任意的函数或数据,在Page实例的其他函数中用此可以访问

 页面的用户行为

小程序宿主环境提供了四个和页面相关的用户行为回调:

  1. 下拉刷新onPullDownRefresh
    监听用户下拉刷新事件,需要在app.json的窗口选择中或页面配置page.json中设置enablePullDownRefresh为true。当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新。
  2. 上拉触底onReachBottom
    监听用户上拉触底事件。可以在app.json的窗口选项中或页面配置page.json中设置触发距离onReachBottomDistance。在触发距离内滑动期间,本事件只会被触发一次。
  3. 页面滚动onPageScroll
    监听用户滑动页面事件,参数为对象,包含scrollTop字段,表示页面在垂直方向已滚动的距离(单位px)。
  4. 用户转发onShareAppMessage
    只有定义了此事件处理函数,右上角菜单才会显示“转发”按钮,在用户点击转发按钮的时候会调用,此事件需要返回一个对象,包含标题和路径两个字段,用于自定义转发内容,如代码清单3-13所示。

    码清单3-13使用onShareAppMessage自定义转发字段

  5. // page.js
    Page({
    onShareAppMessage: function () {
     return {
       title: '自定义转发标题',
       path: '/page/user?id=123'
     }
    }
    })

 获取元素的位置

SelectorQuery NodesRef.boundingClientRect(function callback)

添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery

参数

function callback

回调函数,在执行 SelectorQuery.exec 方法后,节点信息会在 callback 中返回。

参数

Object res

属性类型说明支持版本
idstring节点的 ID 
datasetObject节点的 dataset 
leftnumber节点的左边界坐标 
rightnumber节点的右边界坐标 
topnumber节点的上边界坐标 
bottomnumber节点的下边界坐标 
widthnumber节点的宽度 
heightnumber节点的高度 

返回值

SelectorQuery

示例代码

Page({
  getRect () {
    wx.createSelectorQuery().select('#the-id').boundingClientRect(function(rect){
      rect.id      // 节点的ID
      rect.dataset // 节点的dataset
      rect.left    // 节点的左边界坐标
      rect.right   // 节点的右边界坐标
      rect.top     // 节点的上边界坐标
      rect.bottom  // 节点的下边界坐标
      rect.width   // 节点的宽度
      rect.height  // 节点的高度
    }).exec()
  },
  getAllRects () {
    wx.createSelectorQuery().selectAll('.a-class').boundingClientRect(function(rects){
      rects.forEach(function(rect){
        rect.id      // 节点的ID
        rect.dataset // 节点的dataset
        rect.left    // 节点的左边界坐标
        rect.right   // 节点的右边界坐标
        rect.top     // 节点的上边界坐标
        rect.bottom  // 节点的下边界坐标
        rect.width   // 节点的宽度
        rect.height  // 节点的高度
      })
    }).exec()
  }
})
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值