Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 哈希更改事件保持滚动状态_Javascript_Ajax_Navigation - Fatal编程技术网

Javascript 哈希更改事件保持滚动状态

Javascript 哈希更改事件保持滚动状态,javascript,ajax,navigation,Javascript,Ajax,Navigation,在使用HTML5 onHashChange进行AJAX导航时,有没有办法保持用户的滚动状态 例如,我有一个包含25个项目的twitter提要,用户向下滚动到第25个项目,然后触摸该框。然后,屏幕会查看单个tweet。如果用户触摸背面,则将使用onHashChange将页面更改回正确的哈希值,使用history.go-1。然而,这个过程将自动滚动回到页面顶部,而不是保持滚动状态,用户保持在第25位 有没有办法解决这个问题?我的代码示例如下: <a href="#page-2">Page

在使用HTML5 onHashChange进行AJAX导航时,有没有办法保持用户的滚动状态

例如,我有一个包含25个项目的twitter提要,用户向下滚动到第25个项目,然后触摸该框。然后,屏幕会查看单个tweet。如果用户触摸背面,则将使用onHashChange将页面更改回正确的哈希值,使用history.go-1。然而,这个过程将自动滚动回到页面顶部,而不是保持滚动状态,用户保持在第25位

有没有办法解决这个问题?我的代码示例如下:

<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阻止该默认操作,在这种情况下,它们或多或少是等效的