MUI踩坑记录——上拉加载后隐藏“没有更多了”
来源:互联网 发布:淘宝tbi数据包怎么用 编辑:程序博客网 时间:2024/05/17 04:06
需求:
新闻中心页面,新闻以垂直列表展示,要求上拉动态加载新数据。当有新数据时加载数据并显示;当没有新数据时,提示“没有更多了”,并且在1s后消失。
解决方法:
使用MUI上拉加载控件:
mui.init({//说明见官方文档 pullRefresh : { container:'body', up : { height:50, auto:false, contentrefresh : "正在加载...", contentnomore:'没有更多数据了', callback :moreNews } }});function moreNews(){ //count初始化为0,只加载一次新数据 if(count===0){ console.log("上拉加载触发"); count++; var i=0; while(i++<4){ //newsString中存放字符串格式的节点,循环添加4次 $("#news-list").append(newsString); } this.endPullupToRefresh(false); }else{ //提示没有更多了 this.endPullupToRefresh(true); setTimeout(function(){ //1s后提示性文字消失 //这里的类是mui自己添加的一个div,用来显示提示性文字。 $(".mui-pull-bottom-pocket").addClass("hide"); },1000); }}//css 隐藏样式//这里注意优先级,因为mui会给提示的div添加一个优先级很高的display:block#news-container .hide { display: none !important;}
问题:
虽然我们设置了display:none;提示也消失了,但是滚动条并没有动态上滑,而在手动滑动一次后才会正常显示。
最终方法
(1) 修改需求
我参考了很多app后,发现要么是无限数据滑不到底,要么就是不隐藏,保留提示。所以如果我第二个方法不适用的话,可以尝试修改需求。
(2) css动画
这个方法不好叙述,只能将我的思路展示一下:
这是列表容器的html节点。style是mui自动添加的。translate3d的y轴属性是一个随屏幕滑动而动态变化的值,也就是容器顶部距离当前可见区域的距离。通过修改这个值可以让容器上下移动。可以自己在浏览器中调试、修改,观察效果。
所以,思路就是获取到这个值,然后修改样式。
修改原有代码:
//获取容器对象var container = $("#news-container");//这里打印了一个很神奇的字符串,可以体验一下。console.log(container.css("transform"));//获取y轴属性值,不要奇怪要为什么这么处理字符串 var height = container.css("transform").split(',')[5].replace(')','');//因为height是负值,所以要加40px,即提示div的高度 var delta = parseInt(height)+40; var string = "translate3d(0px, "+delta+"px, 0px) translateZ(0px)";//设置样式 container.css("transform",string);
现在问题应该解决了。获得y轴属性值的方式很奇怪,也不是我刻意为之,而是获得的字符串就很奇怪。
(3)mui.scrollTo()方法
这个方法不管用。也不知道为什么,scrollTop()获取到的值永远是0。所以,滚动条在移动端的适配并不是看上去那么美好。
总结
MUI的坑我相信远不仅仅这一处,以后我遇到还会记录下来,希望更多的人不要像我一样,遇到bug找不到官方解决方法,只能靠偶然间的灵感。
阅读全文
0 0
- MUI踩坑记录——上拉加载后隐藏“没有更多了”
- MUI 做上拉下拉加载更多数据小记
- MUI上拉加载
- MUI列表中用到pullRefresh插件的上拉刷新,会存在第一次过滤数据或者查询数据如果没有结果时,没有提示“没有更多数据了”
- 上拉加载更多
- 上拉加载更多
- 上拉加载更多
- 上拉加载更多
- DropDownListView下拉刷新和上拉加载和没有更多
- MJRefresh上拉加载没有更多数据不提示
- Android上拉加载更多ListView——PulmListView
- mui利用javascript dom元素写的唯品会首页上拉加载更多
- listview 上拉加载更多
- ListView上拉加载更多
- ListView上拉加载更多
- ionic 上拉加载更多
- Android上拉加载更多
- android 上拉加载更多
- Android的入口
- Windows Server搭建mysql数据库
- 关于thinkphp5的上传图片和ckeditor
- 常用sql整理
- 02.Jquery语法上
- MUI踩坑记录——上拉加载后隐藏“没有更多了”
- iTerm2使用pem文件免密登录跳板机
- C语言实现,顺序队列,循环队列,和栈!
- Node.js学习笔记3
- 打包苹果入坑手册
- 如果你已经20岁
- 学习linux中一些基本命令指令
- 数据库的删除语句
- 线程绑定CPU核——001