首页 > 编程语言 >微信小程序获取某个元素或组件距离顶部的初始高度

微信小程序获取某个元素或组件距离顶部的初始高度

时间:2024-11-09 10:41:27浏览次数:1  
标签:微信 top page let 初始 组件 scrollTop 节点 rect

给元素加一个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.octfgroup.com/

标签:微信,top,page,let,初始,组件,scrollTop,节点,rect
From: https://www.cnblogs.com/sathcal/p/18536436

相关文章

  • 微信小程序获取时长页面
    //index/PageA.jsconstapp=getApp()vartimerPageA;//计时器varintPageATime=0Page({/***页面的初始数据*/data:{},//A页计时器countTime(){letthat=this//读取A页计时数值wx.getStorage({......
  • Python中实现微信支付
    目录一,准备环境1,要有微信公众号,商户平台账号2,支持的支付方式有3,备案域名一,扫码支付如图1所示,使用模式一生成支付二维码2,使用模式二生成支付二维码二,使用JSAPI发起微信支付  回到顶部一,准备环境#1,要有微信公众号,商户平台账号#https://pay.weixin.qq.......
  • 焕然一新!TinyVue 组件库 UI 大升级,更符合现代的审美!
    你好,我是Kagol,个人公众号:前端开源星球。自从TinyVue组件库去年开源以来,一直有小伙伴反馈我们的UI不够美观,风格陈旧,不太满足现阶段审美。“TinyVue给我的感觉就是一个没啥审美能力、但是很努力的老程序员开发的”看到这个评价,我是哭笑不得,一方面对小伙伴们真诚、友好的......
  • 微信小程序的两种视频录制方式
    基础库1.3.0开始支持,低版本需做兼容处理。以Promise风格调用:支持需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然小程序插件:支持,需要小程序基础库版本不低于2.18.1微信Windows版:支持微信Mac版:支持功能描述打开另一个小程序参数Objectobject属性......
  • 微信小程序 录制视频
    在微信小程序中,要实现录制视频的功能可以通过调用微信小程序的API来实现。下面是一些基本的步骤:引入相机组件:在小程序的页面文件中引入相机组件。可以使用<camera/>标签将相机组件添加到页面上。获取相机权限:在小程序的app.json文件中配置相机权限。需要在permission字段中添加<......
  • vue3组件应用 + 以及组件相关知识应用
    文章目录vue组件化开发一、什么是Vue组件化开发二、组件的创建方式三、组件的数据传递四、组件的生命周期五、组件的插槽(Slot)数据传递的方式实例组件生命周期应用场景插槽应用define相关应用vue组件化开发一、什么是Vue组件化开发概念Vue组件化开发是一种将用......
  • react 组件应用
    文章目录react组件react中组件hook函数应用useMemo技术细节(useMemo钩子函数和useCallback钩子函数)小结(依赖性数组应用)react组件函数式组件实例及应用场景实例:以下是一个简单的函数式组件,用于显示一个欢迎消息。importReactfrom'react';con......
  • MudBlazor:基于Material Design风格开源且强大的Blazor组件库
    项目介绍MudBlazor是一个基于MaterialDesign风格开源、免费(MITLicense)、功能强大的Blazor组件框架,注重易用性和清晰的结构。它非常适合想要快速构建Web应用程序的.NET开发人员,无需费力地处理CSS和JavaScript。由于MudBlazor完全使用C#编写,因此你可以自由地调整、修复或扩......
  • 网络初始:TCP/IP 五层协议模型 & 网络通信基本流程
    目录1.名词解释1.1局域网1.2广域网1.3交换机1.4IP地址1.5端口号2.协议2.1认识协议2.2五元组 3.协议分层3.1分层的作用3.2OSI七层网络模型& TCP/IP五层(四层)协议模型4. TCP/IP五层(四层)网络模型4.1物理层4.2数据链路层4.3网络层4.4......
  • 基于微信小程序的婚庆摄影系统设计与实现(源码+论文+部署讲解等)
    博主介绍:✌全网粉丝60W+,csdn特邀作者、Java领域优质创作者、csdn/掘金/哔哩哔哩/知乎/道客/小红书等平台优质作者,计算机毕设实战导师,目前专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌技术栈范围:SpringBoot、Vue、SSM、Jsp、HLMT、Nodejs......