欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uniapp获取滚动条距离页面顶部位置和设置

程序员文章站 2022-04-29 14:38:53
...

1.问题描述:

页面在滚动时,我想拿到滚动轴距离页面顶部的距离。我把这个距离赋给一个变量,在某些条件下,我要设置滚动轴距离等于我刚才保存的变量。

2.解决问题:

获取滚动轴距离页面顶部距离:
onPageScroll生命周期函数

//代码

onPageScroll(res){
	console.log(res.scrollTop);//距离页面顶部距离
},

//示例
uniapp获取滚动条距离页面顶部位置和设置
//官方文档API
https://uniapp.dcloud.io/api/lifecycle?id=页面生命周期
设置滚动轴距离页面顶部的距离
uni.pageScrollTo()方法
//代码

uni.pageScrollTo({
    scrollTop: 0,  //距离页面顶部的距离
    duration: 300
});

//示例
uniapp获取滚动条距离页面顶部位置和设置
//官方文档
https://uniapp.dcloud.io/api/ui/scroll?id=pagescrollto
可能会遇到的问题:
①scrollTop赋值时,全局的this.scrollTopNum 为undefined,所以我就给了局部变量的num来解决
②放在onShow生命周期函数里没有执行,百度后得知加上定时器来解决这个问题。

3.回顾问题

其实这个功能还是很好解决的,只不过有时可能会结合到一起去使用,我在这儿做个归纳和总结。另外uni.pageScrollTo()还有一点小问题,文中也给出了解决方案。

题外话:我在项目中使用场景

我们项目中有个页面是根据后台配置的模板渲染页面,用来填写信息和上传照片、视频、音频,所以可能页面上的东西就有可能很多,用户在使用微信小程序拍照时 (我们使用uniapp主要考虑微信小程序,后续可能会利用uniapp特性跨其他平台),有时可能出现拍完照后,页面回到最顶部 (我摸着良心说,测试时真没出现过该问题),用户体验很差,根据Network请求,我可以肯定微信小程序是没有吊销页面的,所以我的解决方案就是实时保存当前滚动轴距离顶部距离,onshow的把滚动轴距离顶部的距离手动设置成保存的那个值。

未来总是充满希望! 加油。

相关标签: uniapp