一个类似于聊天的效果,要求数据加载完成后,滚动条必须在最后。但是,如果数据是原始数据的话,使用scrollToBottom是可以滚动到底部的。但是如果是动态数据的话,就无效了。
找了很多方法,官方QQ群里也问过了,解释的也不是很看的懂。最后没办法,只能去翻代码了。看了下scrollToBottom的方法定义中有一行是这样的:
this.scrollTo(0, this.maxScrollY, time, easing);通过浏览器控制台获取maxScrollY的值很悲剧的为0!!!!!
而maxScrollY的获取就是在reLayout函数当中,于是乎,重新调用一下reLayout就可以更新maxScrollY了。完整的解决方案如下:
//页面加载后,初始化滚动条 var scroll = mui('.mui-scroll-wrapper').scroll(); //获取列表数据 $.post(apiURL, {}, function(data) { //插入列表 insertDomByData(data); //重新计算布局值,最大滚动的高度等等 scroll.reLayout(); //滚动到底部 scroll.scrollToBottom(100); });