uniapp小程序的锚点定位(将页面滚动到目标位置)

小程序中,a页面跳转到b页面,跳转后滚动定位到b页面的特定位置。

  • 1.uni.pageScrollTo传递一个scrollTop参数可以滚动到特定位置。
  • 2.可以通过 uni.createSelectorQuery()等获取定位元素的位置信息。
  • 3.uni.getSystemInfoSync()获取设备的导航栏和状态栏高度。
  • 4.注意:scrollTop参数的值是2的top的值减去3的导航栏的高度和状态栏的高度。
  • 5.最后,需要注意使用定时器,等待页面渲染完毕,开始滚动。

直接上代码:下面是b页面的模板代码和js代码。

html 复制代码
<template>
  <div class="container">
    <div class="section a"></div>
    <div class="section b"</div>
    <div class="section c"></div>
    <div class="section d"></div>
  </div>
</template> 
js 复制代码
onLoad(opt){
    // pos是a页面跳转携带的query参数。a,b,c,d
    const pos = opt && opt.pos || '';
  
    // 获取手机系统相关的信息,是为了获取导航条和状态栏高度。
    const res = uni.getSystemInfoSync();
  
    // 获取需要定位的元素的坐标位置
    uni.createSelectorQuery().select(`.${pos}`).boundingClientRect(data => {
      // 此处的定时器,非常的重要,等待页面渲染完,然后滚动页面。
      // 需要除去 标题栏高度 和 状态栏高度
      setTimeout(()=>{
        uni.pageScrollTo({
          scrollTop: data.top - res.navigationBarHeight - res.statusBarHeight
        })
      }, 300)
    }).exec();
  }
相关推荐
计算机程序设计小李同学7 天前
基于Web和Android的漫画阅读平台
java·前端·vue.js·spring boot·后端·uniapp
码界奇点8 天前
基于Spring Boot 3与UniApp的跨平台新零售电商系统设计与实现
spring boot·uni-app·毕业设计·uniapp·零售·源代码管理
此颜差矣。8 天前
unibest:基于 Vite + Vue 3 的 Uni-app 开发终极方案
uniapp·unibest·移动端框架
空中湖13 天前
深入了解内心世界:免费依恋型人格测试,探索亲密关系中的自己
程序人生·uniapp·unicloud
Rysxt_18 天前
UniApp 集成 SQLite 数据库完整教程
sqlite·uniapp
豌豆学姐24 天前
Sora2 短剧视频创作中如何保持人物一致性?角色创建接口教程
android·java·aigc·php·音视频·uniapp
科技D人生24 天前
Vue.js 学习总结(19)—— Vue3 按钮防重复点击三种方案总结
前端·vue.js·uniapp·vue3 防重复提交·uniapp 防重复提交·前端防抖
脾气有点小暴1 个月前
uv-drop-down-popup 在 iOS 真机中随屏幕滚动偏移
ios·uniapp·uv
豌豆学姐1 个月前
123 口播数字人 API 接入实战:附完整前后端开源项目
大数据·php·uniapp·开源软件
星光一影1 个月前
智慧停车与充电一体化管理平台:打造城市出行新生态
mysql·vue·能源·springboot·uniapp