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();
  }
相关推荐
—Qeyser5 天前
好看的背景颜色 uniapp+小程序
小程序·uni-app·uniapp·微信小游戏
迪迦8 天前
基于uni-app的校园综合服务平台开发实战
前端·javascript·开源·uniapp
vanezkw12 天前
UniApp自定义Android基座原理及流程
uniapp·基座
咸虾米_16 天前
解决getLocation获取当前的地理位置,报错:getLocation:fail auth deny及方法封装
微信小程序·uniapp·用户授权api
har01d1 个月前
在 uniapp 里使用 unocss,vue3 + vite 项目
前端·uni-app·vue·uniapp·unocss
q5507071771 个月前
uniapp/uniappx实现图片或视频文件选择时同步告知权限申请目的解决华为等应用市场上架审核问题
android·图像处理·uni-app·uniapp·unix
胡斌附体1 个月前
小程序省市级联组件使用
前端·javascript·小程序·uniapp·picker级联组件
meng半颗糖1 个月前
uniapp 基础(三)
前端·uniapp·notepad++·uniapp基础
ZEGO即构开发者1 个月前
如何用即构ZEGO SDK和uni-app开发一款直播带货应用?
uniapp·实时音视频·直播·电商直播
脑袋大大的1 个月前
从“PPT动画”到“丝滑如德芙”——uni-app x 动画性能的“终极奥义”
前端·javascript·nginx·uni-app·uniapp·app开发·混合开发