如果页面位于我的应用的某个页面上,我希望页面滚动到顶部。
在页面显示后需要执行此操作。
我正在使用代码:
$('.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)
}
});
但它仍然会发生?
答案 0 :(得分:0)
如果在函数末尾添加return false;
(即在if / else子句之后),它可能会解决问题吗?
我一直在努力解决类似的问题,并在本文的底部找到了提示:
http://chris-spittles.co.uk/jquery-smooth-page-scrolling/
它说那里,
返回false只会阻止浏览器执行其默认行为
对我来说,在页面上给出的示例中,这意味着锚点不会跳转到动画前的页面,但是,既然你没有使用锚点,而是切换类,我不太确定在这种情况下,“默认行为”。
希望它有所帮助。