我这里的布局实现是手写的tab导航(全部、精华那一行),微信小程序自带的下拉刷新必须是拉动整个Page页面,这样会把导航栏也往下拉,因此用的是<scroll-view>的scrolltoupper事件
但是这个事件有些缺点:
- 没有那种弹动的效果
- 当触顶或触底时,均不会触发,必须从未到顶端或低端时把距离拉到0时才触发
- 用户容易误触,导致刷新,相反的是标准的上拉刷新和下拉刷新不可能会误触的,必须由手势滑动
请问大家有什么好的实践经验分享吗?
我这里的布局实现是手写的tab导航(全部、精华那一行),微信小程序自带的下拉刷新必须是拉动整个Page页面,这样会把导航栏也往下拉,因此用的是<scroll-view>的scrolltoupper事件
但是这个事件有些缺点:
请问大家有什么好的实践经验分享吗?
最近也做了个cnode小程序,界面和你的真的很像,自定义下拉刷新的效果有实现,安卓iOS应该都支持,可以参考下,git地址:https://github.com/wittDe/conde-wechat-mp
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
如果是我。会自己手写一个仿下拉刷新。
页面结构可能是这样
思路可能大概是这样的
首先使用transform将top高度设为0
监听scroll-view的touch事件,当拖动到顶部任然继续下拖。则计算拖动距离,增加top的高度,到达一定高度则不再增加,并释放更新
注意这里的距离计算应该给一个弹簧的效果。即拖动的距离越大,top的高度增加越小,嗯,写个简单的例子的话大概可能是这样
top的高度为: h1
拖动距离为: x(此为touchmove与上次touchmove的y左边之差)
假设top最后高度为100
则:
h1 += (100 - h1) * x / 100);
h1 = h1 > 100 ? 100 : h1;
然后就会有一个简单的弹簧效果。当h1的高度达到100则不再增加,当释放的时候h1重置回0,并且刷新列表
仅供参考啦