加载jQuery移动网站后,我想滚动到div的位置。使用此代码
function changeViewport(){
var errorMsg = $('.dataerror').first();
if(errorMsg != null) {
var newPosition = errorMsg.offset();
$.mobile.silentScroll(newPosition.top);
}
}
我在$(document).ready
上调用该函数,但在调用该函数并将silentScroll调用到该位置后,框架似乎自动回滚到页面顶部...任何人都知道如何防止这种行为? (我也尝试过pageinit,pageshow ......)
我是否必须覆盖某个功能或触发另一个事件?欢迎任何帮助或建议:)
欢呼声。
答案 0 :(得分:0)
在与自己斗争之后,我似乎找到了原因以及解决方法。看来 changePage 中使用的动画正在考虑静音滚动。您可以阅读有关此here的更多信息。在同一页面上,评论也开始讨论不同的事件,例如 pagebeforeshow 或 pageaftershow - 遗憾的是,这些事件对我没有任何影响。
我发现的解决方法是将 .silentScroll 包装在半秒的超时时间内。它看起来有点不稳定,但它似乎对我有用。希望这会有所帮助。
试试这个:
function changeViewport(){
var errorMsg = $('.dataerror').first();
if(errorMsg != null) {
var newPosition = errorMsg.offset();
setTimeout(function(){$.mobile.silentScroll(newPosition.top)}, 500);
}
}