51ZionLin
51ZionLin
  • 发布:2017-03-28 17:31
  • 更新:2017-03-28 17:31
  • 阅读:11036

选项卡切换下拉刷新,上拉加载,回到顶部,跳到底部的实现方法。

分类:MUI


今天遇到一个问题,在使用官方提供的选项卡切换,附带上拉加载下拉刷新的时候遇到问题。
首先,我需要增加一个返回顶部功能,即切换选项同时返回顶部。
其次,我需要在底部加载完毕的时候,对应选项跳转到底部。

首先先了解下,当采用如图的方式构建的时候,需要了解以下几点:
1。滚动条是在div内部,即.scroll 包含区域的
这意味着window.scroll dom.scrollTop 均无效。
2.其中每一个子div都包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()方法返回的将是一个数组。
3.选项头包含一个.scroll区域
这意味着mui('.mui-scroll-wrapper').scroll()[0]指向选项头的scroll区域。

了解完以下几点就简单多了。下拉刷新上拉加载的js和方法官方Hello MUI例程里面有,我就不多说了。
直接po代码。
回到顶部:

> mui('.btn_top')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollTo(0,0,100)
> console.log('第'+nT+'选项请求返回顶部')
> })

其中nT代表当前slider对应选项卡。
其中的nT+1目的就是避开选项头的那一个scroll区域。
回到底部:

> mui('.btn_bottomtop')[0].addEventListener('tap',function(){
> var nT = mui('.mui-slider').slider().slideNumber;
> nT = nT+1
> mui('.mui-scroll-wrapper').scroll()[nT].scrollToBottom(100);
> console.log('第'+nT+'选项请求返回顶部')
> })

频繁出现的100指代的是100毫秒。
具体参考官方文档:http://dev.dcloud.net.cn/mui/ui/#scroll

2 关注 分享
w***@163.com 静语默言

要回复文章请先登录注册

静语默言

静语默言

太棒了 大神 这个问题我找了好久了 棒棒哒 O(∩_∩)O
2017-05-18 17:02
w***@163.com

w***@163.com

谢谢楼主提供的方法,赞个。
2017-04-21 10:33
51ZionLin

51ZionLin (作者)

回复 wen如故i :
触发上拉刷新么?这应该不可能啊,我也是这样写的,但是没有触发上拉刷新,要么你加一个阀值作为判断,scrollTo的时候设置该阀值为false 同时Pullup事件判断,为false的时候则不触发上拉刷新事件。多个上拉刷新则弄一个数组,这样消耗内存不大的。
2017-04-08 15:54
wen如故i

wen如故i

mui('.mui-scroll-wrapper').scroll()[ i ].scrollTo(0,0,100); 加了这条代码,每次会自动触发 上拉(我上设置了auto:true,这个是必须的);注释这条代码,就不会触发上拉。 怎么让它不触发上拉
2017-04-05 14:51