Smooth Scroll转到相同的顶部锚点

时间:2015-02-17 00:58:02

标签: jquery html

我有一个问题,我的平滑滚动jquery每次都会转到同一个锚点...这是我的代码:

<a href="#ax">a</a>
<a href="#b">a</a>
Takes you too...
<a name="ax" id="ax"></a>
<a name="b" id="b"></a>

$('a[href*=#]').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});

它带你到字母表中的每个字母(我命名为斧头,以防万一混合使用&lt; a&gt;等)。所以问题是它总是会进入。

我觉得jquery不是问题所在,我只是错过了一个概念!

非常感谢

1 个答案:

答案 0 :(得分:0)

使用这个更优化的功能进行平滑滚动

$(function() {
  $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html,body').animate({
          scrollTop: target.offset().top
        }, 1000);
        return false;
      }
    }
  });
});