按后退按钮将页面滚动到页面顶部

时间:2017-07-24 19:58:14

标签: javascript jquery twitter-bootstrap

我认为我遇到了Bootstrap的经典后退按钮问题,我真的试着在互联网上寻找解决方案,但无法解决。 我正在使用bootstrap导航丸。 我有大约8个药丸,当我点击其中任何一个时,页面滚动到该特定部分,URL更改为xyz.com/abc#sectionx 当我按后退按钮时,URL会更改为xyz.com/abc,但页面不会回滚到顶部。

--- ----- ****

编辑:我不认为我说清楚了。 URL已更改,但页面仍保留在xyz.com/abc#sectionx的相同部分 因此,如果用户没有查看URL,那么他们会认为按下后退按钮没有效果。

--- ----- ****

所以我尝试使用它:

$('html,body').on('hashchange', function () {
    $('body').scrollTop(0);
});

但这没有用,所以我试图以不同的方式定义Top的值:

$('html,body').on('hashchange', function () {
    var top = $(window.location.hash).offset().top;
    $('body').scrollTop('top');
});

但那不起作用,所以我试过了:

$('html,body').on('hashchange', function () {
 if (window.scrollY>0) {
 window.scrollTo(0,window.scrollY-20)
 setTimeout("gototop()",10)
 }
});

我也尝试用html, body替换window,但这也不起作用。 我真的很困惑该怎么做以及如何制作后退按钮将我带到页面顶部。问题是后退按钮正在改变URL,这很棒,但它也需要滚动到顶部。 任何有关如何实现这一目标的指导都将非常有价值。我非常感谢jQuery或纯javascript的指导。

1 个答案:

答案 0 :(得分:1)

如果您正在寻找滚动到顶部的方法。考虑浮动按钮或分隔每个部分的链接。如上所述,通常用户希望后退按钮执行预期的操作。

你可以像这样使用自己的锚点轻松建立一个链接。

<h2 id="top">Top of Page</h2>

// block of content

<a href="#top">Go to top</a>

// block of content

<a href="#top">Go to top</a>

.....