0

如果页面在我的应用程序的某个页面上,我希望页面滚动到顶部。

它需要在页面显示后执行此操作。

我正在使用代码:

$('.current-page, #'+desiredPage).toggleClass('current-page')

if(desiredPage === 'page-search-results'){

    $(window).scrollTop(scrollPosition)

}else{

    $(window).scrollTop(0)

}

但是,在实际切换类之前,页面会在一瞬间滚动到顶部(该类中包含用于显示页面的 css)。为什么是这样?以及如何确保它只发生在之后?

这仅在移动设备上可见。

根据我尝试使用的评论/答案:

$('.current-page, #'+desiredPage).toggleClass('current-page').promise().done(function(){

    if(desiredPage === 'page-search-results'){

        $(window).scrollTop(scrollPosition)

    }else{

        $(window).scrollTop(0)

    }

});

但它仍然会发生?

4

1 回答 1

0

如果您return false;在函数末尾添加 a(即在 if/else 子句之后),它可能会解决问题吗?

我一直在努力解决类似的问题,并在本文底部找到了提示:

http://chris-spittles.co.uk/jquery-smooth-page-scrolling/

那里说,

返回 false 只是阻止浏览器执行其默认行为

对我来说,在页面上给出的示例中,这意味着锚不会跳到动画之前的页面,但是,由于您没有使用锚,而是切换类,我不太确定“默认行为”是什么“在这种情况下。

希望能帮助到你。

于 2014-12-18T14:17:21.920 回答