微信小程序下拉刷新上拉加载的两种实现方法使用评测
直奔主题:如果当前页面含有scroll-view,请注意:scroll-view高度如果设置为屏幕高度时,建议采用在scroll-view里设定bindscrolltoupper和bindscrolltolower方式,因为如果这种情况下仍然使用onPullDownRefresh和onReachBottom方法,会存在监测不到上拉刷新事件的问题,代码如下:
1 <!--test.wxml--> 2 <view> 3 <scroll-view scroll-y="true"> 4 <view style="background-color:red">1</view> 5 <view style="background-color:blue">2</view> 6 <view style="background-color:green">3</view> 7 </scroll-view> 8 </view>
1 //test.js 2 //获取应用实例 3 Page 4 ({ 5 data: { 6 }, 7 onPullDownRefresh: function(e) { 8 console.log('使用全局方法滑动到了页面顶部'); 9 }, 10 onReachBottom: function(e) { 11 console.log('使用全局方法滑动到了页面底部'); 12 } 13 }
1 /* pages/test/test.wxss */ 2 scroll-view { 3 height: 1334rpx; 4 width: 748rpx; 5 border: solid 1rpx black; 6 } 7 8 scroll-view view { 9 height: 600rpx; 10 width: 750rpx; 11 }
效果如图所示:
因此,建议在布局时,如果scroll-view组件高度设置为了当前屏幕高度,还是要用scroll-view组件的bindscrolltoupper和bindscrolltolower方式,代码如下:
1 <!--test.wxml--> 2 <view> 3 <scroll-view scroll-y="true" bindscrolltoupper="DingBu" bindscrolltolower="DiBu"> 4 <view style="background-color:red">1</view> 5 <view style="background-color:blue">2</view> 6 <view style="background-color:green">3</view> 7 </scroll-view> 8 </view>
1 //test.js 2 Page 3 ({ 4 data: { 5 }, 6 DingBu: function(e) { 7 console.log('使用局部方法滑动到了页面顶部'); 8 }, 9 DiBu: function(e) { 10 console.log('使用局部方法滑动到了页面底部'); 11 } 12 })
1 /* pages/test/test.wxss */ 2 scroll-view { 3 height: 1334rpx; 4 width: 748rpx; 5 border: solid 1rpx black; 6 } 7 8 scroll-view view { 9 height: 600rpx; 10 width: 750rpx; 11 }
效果如图所示:
附学习链接:http://www.cnblogs.com/simba-lkj/p/6274232.html
附官方说明:
Bug & Tip
tip
: 请勿在scroll-view
中使用textarea
、map
、canvas
、video
组件tip
:scroll-into-view
的优先级高于scroll-top
tip
: 在滚动scroll-view
时会阻止页面回弹,所以在scroll-view
中滚动,是无法触发onPullDownRefresh
tip
: 若要使用下拉刷新,请使用页面的滚动,而不是scroll-view
,这样也能通过点击顶部状态栏回到页面顶部