uniapp 滚动到页面指定的数据位置
uniapp 滚动到页面指定的数据位置
·
一般情况下可使用以下写法:
uni.createSelectorQuery().in(this).select('.roll').boundingClientRect(res => {
uni.pageScrollTo({
//过渡时间必须为0,uniapp bug,否则运行到手机会报错
duration:0,
//滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离,这个位置可根据实际情况
//res.top ± num
scrollTop:res.top,
})
}).exec();
上述写法可以适用于很多场景,但是某些场景下则需结合 this.$nextTick 和 setTimeout 使用,写法如下:
this.$nextTick(() => {
setTimeout(() => {
uni.createSelectorQuery().in(this).select(`.roll`).boundingClientRect(res => {
uni.pageScrollTo({
//过渡时间必须为0,uniapp bug,否则运行到手机会报错
duration:0,
//滚动到实际距离是元素距离顶部的距离减去最外层盒子的滚动距离
scrollTop:res.top,
})
}).exec();
}, 100);
});
更多推荐
已为社区贡献3条内容
所有评论(0)