uniapp获取滚动条距离页面顶部位置和设置
1.问题描述:
页面在滚动时,我想拿到滚动轴距离页面顶部的距离。我把这个距离赋给一个变量,在某些条件下,我要设置滚动轴距离等于我刚才保存的变量。
2.解决问题:
获取滚动轴距离页面顶部距离:
onPageScroll生命周期函数
//代码
onPageScroll(res){
console.log(res.scrollTop);//距离页面顶部距离
},
//示例
//官方文档API
https://uniapp.dcloud.io/api/lifecycle?id=页面生命周期
设置滚动轴距离页面顶部的距离
uni.pageScrollTo()方法
//代码
uni.pageScrollTo({
scrollTop: 0, //距离页面顶部的距离
duration: 300
});
//示例
//官方文档
https://uniapp.dcloud.io/api/ui/scroll?id=pagescrollto
可能会遇到的问题:
①scrollTop赋值时,全局的this.scrollTopNum 为undefined,所以我就给了局部变量的num来解决
②放在onShow生命周期函数里没有执行,百度后得知加上定时器来解决这个问题。
3.回顾问题
其实这个功能还是很好解决的,只不过有时可能会结合到一起去使用,我在这儿做个归纳和总结。另外uni.pageScrollTo()还有一点小问题,文中也给出了解决方案。
题外话:我在项目中使用场景
我们项目中有个页面是根据后台配置的模板渲染页面,用来填写信息和上传照片、视频、音频,所以可能页面上的东西就有可能很多,用户在使用微信小程序拍照时 (我们使用uniapp主要考虑微信小程序,后续可能会利用uniapp特性跨其他平台),有时可能出现拍完照后,页面回到最顶部 (我摸着良心说,测试时真没出现过该问题),用户体验很差,根据Network请求,我可以肯定微信小程序是没有吊销页面的,所以我的解决方案就是实时保存当前滚动轴距离顶部距离,onshow的把滚动轴距离顶部的距离手动设置成保存的那个值。
未来总是充满希望! 加油。
上一篇: uniapp安卓应用,输入法软键盘弹起,窗口顶起,变形解决办法
下一篇: uniapp页面参数传递