小程序中,a頁面跳轉到b頁面,跳轉后滾動定位到b頁面的特定位置。
- 1.uni.pageScrollTo傳遞一個scrollTop參數可以滾動到特定位置。
- 2.可以通過 uni.createSelectorQuery()等獲取定位元素的位置信息。
- 3.uni.getSystemInfoSync()獲取設備的導航欄和狀態欄高度。
- 4.注意:scrollTop參數的值是2的top的值減去3的導航欄的高度和狀態欄的高度。
- 5.最后,需要注意使用定時器,等待頁面渲染完畢,開始滾動。
直接上代碼:下面是b頁面的模板代碼和js代碼。
<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>
onLoad(opt){// pos是a頁面跳轉攜帶的query參數。a,b,c,dconst 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();}