-1

我正在使用此代码在页面加载时滚动到页面底部:

$(function(){
 $.mobile.silentScroll(someValue);
}

使用此代码我无法滚动到页面底部。发生的情况是,它滚动到底部半秒钟,然后再次回到默认位置。我在正文中使用列表视图、页脚和页眉。我已经尝试过使用 pageshow、pageload 事件但无法获得所需的结果......

4

1 回答 1

1

要理解这一点,您需要了解 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 事件期间是正确的,但即便如此,您也需要稍微延迟。

于 2013-05-31T09:36:31.513 回答