动画后退滚动上一个历史记录按钮单击

时间:2016-09-14 21:38:12

标签: jquery

我正在jQuery中正在处理一个页面。我的页面包含一个链接和一个表单。这是我想要的行为:

当用户点击链接时,浏览器会向下滚动到带有动画的表单。这是代码,它运作良好:

$('#myLink').click(function(){
     $('body, html').stop().animate({scrollTop:$('#myForm').offset().top-20});
});

现在,我想要的是,当用户点击其浏览器的上一个历史记录按钮时,浏览器会以动画的形式向上滚动到页面顶部

这是我使用的代码。在JS代码的开头,我做了:

history.pushState({'myStatus':'init'},'init','');

然后,在点击监听器中我添加了:

if(history.state.myStatus == 'init') history.pushState({myStatus:'form'},'','#form');

然后,onpopstate:

window.onpopstate = function(){
    if(history.state.myStatus == 'init' ) $('html,body').animate({scrollTop:0});
};

这很有效。我唯一的问题是在动画之前,浏览器跳到顶部,我不喜欢它。

有没有办法让它更好用?

谢谢!

0 个答案:

没有答案