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)
}
});
,但它仍然發生?
看看這個問題的答案:http://stackoverflow.com/questions/10321393/jquery-function-on-toggleclass-complete。它建議使用'promise()'來確保'toggleClass'已經完成。你可以嘗試使用它,然後一旦完成,調用'scrollTop'。 – lhan
可能的重複http://stackoverflow.com/questions/10321393/jquery-function-on-toggleclass-complete –
這不是重複的,在這種情況下沒有持續時間或動畫,因此不需要回調。發生什麼事是滾動發生在渲染完成之前。我唯一能想到的就是使用一個非常短的setTimeout。 –