2013-01-07 25 views
3

看到這個頁面:http://goo.gl/X3tjr防止klicking回來的時候按鈕,但不離開頁面自動滾動?

當你點擊一個帖子,帖子動畫和網址哈希改變。問題是,當回頭時,我想要一個平滑的動畫回到用戶點擊帖子時的相同位置。現在,它只是跳回到這個位置,而且看起來不太好。

我讀了這個問題:Prevent browser from snapping to previous scroll position when pushing back button

但是我的情況有點不同,因爲頁面實際上並不重裝(哈希剛好消失)。

是否有可能擺脫自動滾動的?

+0

您可以刪除或編輯此功能'$(窗口).hashchange(函數(){});'在http://dev.fristil.se/sdh/wp-content/themes/sdh/theme.js – HamZa

+0

不,我肯定不會想這樣做。該函數只是恢復的職位(隱藏當前和顯示的其餘部分),然後** **嘗試向滾動位置動畫到這是什麼之前,但因爲瀏覽器自動滾動動畫沒有做任何事情。 – qwerty

回答

0

我建議你History.js: https://github.com/browserstate/History.js/

很容易改變網址,無需重新加載和管理頁面的歷史。

可惜的是,因爲不存在的話,你不能趕上「回來」事件,但你可以趕上statechange

// Bind to StateChange Event 
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate 
    var State = History.getState(); // Note: We are using History.getState() instead of event.state 
    History.log(State.data, State.title, State.url); 
}); 

我通常做的是什麼吸引用戶的點擊,如果狀態變化沒有點擊就被觸發,我暗示用戶返回。