Javascript 哈希更改事件保持滚动状态
在使用HTML5 onHashChange进行AJAX导航时,有没有办法保持用户的滚动状态 例如,我有一个包含25个项目的twitter提要,用户向下滚动到第25个项目,然后触摸该框。然后,屏幕会查看单个tweet。如果用户触摸背面,则将使用onHashChange将页面更改回正确的哈希值,使用history.go-1。然而,这个过程将自动滚动回到页面顶部,而不是保持滚动状态,用户保持在第25位 有没有办法解决这个问题?我的代码示例如下:Javascript 哈希更改事件保持滚动状态,javascript,ajax,navigation,Javascript,Ajax,Navigation,在使用HTML5 onHashChange进行AJAX导航时,有没有办法保持用户的滚动状态 例如,我有一个包含25个项目的twitter提要,用户向下滚动到第25个项目,然后触摸该框。然后,屏幕会查看单个tweet。如果用户触摸背面,则将使用onHashChange将页面更改回正确的哈希值,使用history.go-1。然而,这个过程将自动滚动回到页面顶部,而不是保持滚动状态,用户保持在第25位 有没有办法解决这个问题?我的代码示例如下: <a href="#page-2">Page
<a href="#page-2">Page 2</a>
<a href="#page-3">Page 3</a>
$(window).bind('hashchange', function(){
newHash = window.location.hash.substring(1);
if (newHash){
$(".page").hide();
$("#"+newHash).show();
}
else
{
$(".page").hide();
$(".page:first).show();
}
});
$(window).trigger('hashchange');
您是否尝试过event.preventDefault或return false?在每次单击或hashChange事件时?基本上-我需要它在返回时不跳转-在hash change事件中不向前链接。默认操作正在跳转到定位点,因此您需要使用event.preventDefault或return false阻止该默认操作,在这种情况下,它们或多或少是等效的