1.使用uniapp生命周期中的onPageScroll()监听滚动,获取滚动的位置
2.点击元素后,将其scrollTop存储,下次页面重新渲染时,通过uni.pageScrollTo()方法来实现滚动(单独的pageScrollTo设置无效,加了定时器就生效了 目前不知道为什么)
相关代码:
<script>
export default{
data(){
return{
scrollTop:''
}
},
methods:{
getScrollTop() {
uni.setStorageSync('scrollTop', this.scrollTop)
},
},
onLoad(){
setTimeout(() => {
uni.pageScrollTo({
scrollTop: uni.getStorageSync('scrollTop'), //距离页面顶部的距离
duration: 200 //动画
});
}, 100)
},
onPageScroll(res) {
console.log(res.scrollTop, '距离页面顶部距离'); //距离页面顶部距离
this.scrollTop = res.scrollTop;
},
}
</script>