mui中的 mui.scrollTo 方法有缺陷,比如调用 mui.scrollTo(573,500);结果不是定位到 573的位置,有可能在这个位置上下有一定的 offset距离。尤其是连续调用两次明显位置不一样。我看了一下mui.js的源码,发现有一个除法操作,这个有一定的影响。而且scroll(duration - 10);中的duration 如果是小于10的一个数值,则直接会跳出scroll 函数。剩下的距离就没有滚动了。
$.scrollTo = function(scrollTop, duration, callback) {
duration = duration || 1000;
var scroll = function(duration) {
if (duration <= 0) {
callback && callback();
return;
}
var distaince = scrollTop - window.scrollY;
setTimeout(function() {
window.scrollTo(0, window.scrollY + distaince / duration * 10);
scroll(duration - 10);
}, 16.7);
};
scroll(duration);
};
如果在 if (duration <= 0) {}中的callback && callback();之前增加:window.scrollTo(0, scrollTop);就不会出现这个问题。
请官方大神们修复这个问题吧。
翾 (作者)
好的,谢谢了。
2015-05-11 10:35