美文网首页
小程序总结(八)-获取某个元素或组件距离顶部的初始高度

小程序总结(八)-获取某个元素或组件距离顶部的初始高度

作者: 自律财富自由 | 来源:发表于2018-08-17 17:09 被阅读0次

    给元素加一个id

    然后使用

    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()
    
    如果你想在页面滚动到某个元素的时候,固定导航栏,就可以使用。

    如果在onLoad()方法里面使用,可以获取该元素刚加载时的位置信息。
    如果在OnPageScroll()方法里面使用,可以实时获取该元素的位置信息,特别是高度,因为我们要用到,去判断滚动到某个临界值的时候做出一些样式变化或者变化。

        onPageScroll: function (e) {
            this.setData({
                scrollTop: e.scrollTop
            })
            let query = wx.createSelectorQuery()
            query.select('#index-nav').boundingClientRect( (rect) => {
                let top = rect.top
                if (top <= 53) {  //临界值,根据自己的需求来调整
                    this.setData({
                        fixedNav: true,    //是否固定导航栏
                        showToTop: true  //是否回到临界值的状态
                    })
                } else {
                    this.setData({
                        fixedNav: false,
                        showToTop: false
                    })
                }
            }).exec()
        },
    
    //回到临界值的函数
        setScrollTop() {
            let query = wx.createSelectorQuery()
            let scrollTop = this.data.scrollTop
            query.select('#index-nav').boundingClientRect((rect) => {
                let top = rect.top
                // 这里是关键
                wx.pageScrollTo({
                    scrollTop: scrollTop + top - 56,
                    duration: 0
                })
            }).exec()
        },
    
      //触底加载
       onReachBottom () {
            if (this.data.AJAXLock && this.data.page < this.data.totalPage) {
                let page = this.data.page + 1
                this.setData({
                    page: page
                })
                this.getLock()
                this.getHomieData()
            }
        },
    

    相关文章

      网友评论

          本文标题:小程序总结(八)-获取某个元素或组件距离顶部的初始高度

          本文链接:https://www.haomeiwen.com/subject/iestiftx.html