我正在制作一个具有固定标题的网页,当用户单击标题中的导航链接时,整个页面(html 和正文)都有一个动画幻灯片将该链接元素放在顶部,而不仅仅是跳到那里. 我的问题是,如果我尝试单击后退按钮,它将落后一节。例如,如果我在#A 部分,然后转到#B 部分,然后转到#C 部分,然后点击#C 部分的返回按钮,它不会回到#B 页,直到我再次单击它。url 反映了被点击的后退按钮,但页面保持不变。因此,在点击“返回”两次后,该 url 将位于 #A 上,但该页面实际上仍将位于 #B 上。
这是我的 jQuery 代码,非常简单。如果有人可以帮助我恢复按钮功能,我将不胜感激
$('.header-nav-item').click(scrollBody);
function scrollBody(e){
e.preventDefault();
var url_hash = "#" + e.target.href.substring(e.target.href.indexOf('#')+1);
$('html,body').animate({
'scrollTop': $(url_hash).offset().top
}, 500,'swing',function(){
//reroute url
window.location = url_hash;
});
}
编辑:这个问题发生在 Firefox 和 Chrome 中。奇怪的是,IE 处理后退按钮很好