点击进入页面滚动到指定区域并避开固定定位的导航栏

实现点击进入页面滚动到指定区域并避开固定定位的导航栏

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();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容