我正在使用此代码在页面加载时滚动到页面底部:
$(function(){
$.mobile.silentScroll(someValue);
}
使用此代码我无法滚动到页面底部。发生的情况是,它滚动到底部半秒钟,然后再次回到默认位置。我在正文中使用列表视图、页脚和页眉。我已经尝试过使用 pageshow、pageload 事件但无法获得所需的结果......
我正在使用此代码在页面加载时滚动到页面底部:
$(function(){
$.mobile.silentScroll(someValue);
}
使用此代码我无法滚动到页面底部。发生的情况是,它滚动到底部半秒钟,然后再次回到默认位置。我在正文中使用列表视图、页脚和页眉。我已经尝试过使用 pageshow、pageload 事件但无法获得所需的结果......
要理解这一点,您需要了解 jQuery Mobile 的工作原理。
某些功能不能与 一起使用$(function(){
,因为此时页面仅加载到 DOM 中,jQuery Mobile 甚至没有开始对该页面做任何事情。为了解决这个问题,jQM 开发人员创建了一个叫做页面事件的东西。
基本上$.mobile.silentScroll
只能在正确的页面事件期间使用。但即便如此,您也需要使用一个稍有延迟的 settimeout 才能使其工作。无声滚动根本不是为了在页面显示中使用而创建的。
$(document).on('pageshow', '#index', function(){
setTimeout(function(){
$.mobile.silentScroll(1500);
},100);
});
工作示例:http: //jsfiddle.net/Gajotres/2xfrM/
$(function(){
在您的情况下,页面返回是因为页面在触发期间没有正确的页面高度。页面高度仅在 pageshow 事件期间是正确的,但即便如此,您也需要稍微延迟。