我正在创建一个单页并使用 pushState 来更改地址。现在,如果我推回,popstate 被触发,我想动画页面从当前位置滚动到最后一个位置。这当然有效,但页面会跳到顶部。
有谁知道如何防止这种行为?我正在使用 jQuery 为滚动设置动画....
谢谢 :)
// 编辑:好的,我发现,如果我为滚动设置动画然后更改 url,它就不会跳来跳去 - 但现在我必须双击后退按钮才能返回...
http://www. testwebseiten.at/user/falk/stein-jagersbacher.at
代码有点乱所以我解释一下:
var scrollCurrentSection = function(event) {
if (typeof event.preventDefault != 'undefined')
event.preventDefault();
var page = "";
if (window.location.href.substr(-1) == '/')
page = sjag.index;
else
page = window.location.href.match(/([^\/]+)$/)[1];
$this = $('a[href$="'+page+'"]');
if ($this.length) {
sjag.scrollToSection($this);
}
}
window.onpopstate = scrollCurrentSection;
Run Code Online (Sandbox Code Playgroud)
sjag 包含几个选项和方法......所以sjag.index只包含'index.php',sjag.scrollToSection包含动画。
单击导航链接时,将调用以下函数:
// set navi
$("#navi a, #navi-add a").click(function(event) {
var data = $(this).data('sjagpage');
if (typeof data == 'undefined') …Run Code Online (Sandbox Code Playgroud)