如果直接使用selector选择器滚动,目标元素会在最顶部,最好少滚动一点,让元素显示在屏幕中间一点,下面示例方法,获取目标元素距离顶部距离,然后减去200px
<template>
<view class="page-container">
<!-- 其他元素 -->
……
<!-- 目标元素 -->
<view id="target"></view>
</view>
<script>
methods: {
jumpTo(){
//通过api获取目标元素距离屏幕顶部距离
const query = uni.createSelectorQuery().in(this);
query
.select("#target")
.boundingClientRect((data) => {
uni.pageScrollTo({
scrollTop:data.top - 200,
duration: 200
});
})
.exec();
}
}
</script>
</template>
注意
如果滚动不生效,可能是最外层容器设置了100vh之类的高度,改为page-container:auto!important试试
1万+

被折叠的 条评论
为什么被折叠?



