看到这个页面:http: //goo.gl/X3tjr
当您单击帖子时,该帖子会以动画形式出现,并且 URL 哈希值会发生变化。问题是当返回时,我想要一个平滑的动画回到用户单击帖子时的相同位置。眼下,只是跳回原位,简直不好看。
我读了这个问题:Prevent browser from snapping to previous scroll position when push back button
但我的情况有点不同,因为页面实际上并没有重新加载(哈希只是消失了)。
是否有可能摆脱自动滚动?
看到这个页面:http: //goo.gl/X3tjr
当您单击帖子时,该帖子会以动画形式出现,并且 URL 哈希值会发生变化。问题是当返回时,我想要一个平滑的动画回到用户单击帖子时的相同位置。眼下,只是跳回原位,简直不好看。
我读了这个问题:Prevent browser from snapping to previous scroll position when push back button
但我的情况有点不同,因为页面实际上并没有重新加载(哈希只是消失了)。
是否有可能摆脱自动滚动?
我推荐你 History.js: https ://github.com/browserstate/History.js/
无需重新加载即可轻松更改 url 和管理页面历史记录。
不幸的是,您无法捕获“返回”事件,因为它不存在,但您可以捕获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);
});
我通常做的是捕捉用户的点击,如果没有点击就触发了状态更改,我假设用户返回。