上下文:我有一个单页的网络应用程序。因此,任何时候都会隐藏很多div
(我不确定这是否重要)。我发现当用户完成一个页面(页面X),然后他们点击返回(到页面Y) - 如果他们返回到页面X,那么位置与他们离开页面时的位置相同。后退按钮位于底部,以便用户再次结束。
我想要的是,当他们返回到第X页时,他们会在页面的顶部,以便他们可以重新开始。无论是向后滚动还是向后跳回 - 无论哪种方式都可以。
我已经尝试了以下所有方法但没有成功:
// Scroll to top
setTimeout(function(){
alert('scroll');
$('html, body').animate({scrollTop : 0}, 2000);
}, 2000);
在顶部添加ID为top-anchor
的div并使用:
$('html, body').animate({
scrollTop: $("#top-anchor").offset().top
}, 2000);
拥有a
并使用锚点,使用下面的代码(它只能运行一次,之后因为哈希已经在URL中,我认为它不再有效):
document.hash = '#top-anchor';
也尝试过:
window.scrollTo(0, 0);
没有运气。
非常感谢任何其他想法。
答案 0 :(得分:0)
你可以实现这样的目标:DEMO:https://jsfiddle.net/yeyene/bpwtLg1w/1/
不确定您的内容div是如何显示和隐藏的,只是想到将滚动添加到页面顶部div部分。
在后退按钮点击事件中添加滚动事件,因为您已经知道要去哪个页面,您可以使用...滚动到此页面顶部...
$(元素).POSITION()。顶部
<强> JQUERY 强>
$(document).ready(function () {
$('input[type=button]').on('click', function(){
getPageID = $(this).attr('id');
$('.page').hide(0);
$('div#'+getPageID).show(0);
$('html,body').animate({
scrollTop: $('div#'+getPageID).position().top - 10
}, 500);
});
});