1

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

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

我已经尝试过插件——比如地址——但没有成功。那么,滚动浏览保留浏览器历史记录的锚点的简单方法是什么?

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

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

2 回答 2

2

解决了这个问题。答案暗示了一个不错的 jQuery 库:smoothanchors

于 2012-11-23T16:34:37.660 回答
0

代替

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

有了这个

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

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

于 2013-01-03T14:52:56.957 回答