jQuery scrollTop通过锚点保留浏览器历史记录

时间:2012-11-23 00:03:40

标签: jquery browser-history scrolltop

我正在尝试在页面锚点之间添加平滑过渡。

在以下代码中,转换正在运行,但浏览器历史记录不记得锚定导航。使用浏览器后退按钮失败。删除preventDefault()会使一切正常,但在从上一页位置滚动到目标标记内容之前,页面会闪烁。

我尝试了插件 - 比如address - 没有成功。那么,滚动浏览锚点保存浏览器历史记录的简单方法是什么?

$('a').click(function(e) {
  e.preventDefault();

  var href = $(this).attr('href');
  $('html, body').animate({
     scrollTop: $(href).offset().top}, 'slow', 'swing'
  );
});

2 个答案:

答案 0 :(得分:2)

this question解决。答案意味着一个不错的jQuery库:smoothanchors

答案 1 :(得分:0)

替换

    $("html,body").animate({

用这个

    $("html:not(:animated),body:not(:animated)").animate({

使用其他值中的不同变量名称也是一种好习惯,例如HREF用于变量名称,也是链接属性。