实现点击进入页面滚动到指定区域并避开固定定位的导航栏
const scrollToElement = (elementId) => {
uni.pageScrollTo({
selector: `#${elementId}`, // 滚动到指定元素
offsetTop: 45 // 上方预留 45px
})
}
在移动端uni.pageScrollTo 中设置的 offsetTop 未生效, 使用scrollTop
替代 offsetTop
在 uni.createSelectorQuery()
中手动获取目标元素的位置,然后通过scrollTop
设置偏移
const scrollToElement = (elementId) => {
uni.createSelectorQuery()
.select(`#${elementId}`)
.boundingClientRect(res => {
if (res) {
uni.pageScrollTo({
scrollTop: res.top - 45,
duration: 300
});
}
})
.exec();
}