jQuery Smooth Scroll到任何Anchor

时间:2013-08-13 04:10:12

标签: javascript jquery html

我尝试了很多不同的代码来平滑滚动到锚点。我找不到一个有效的。它需要能够垂直,水平和对角滚动。我与其他人发现的另一个问题是它们似乎不适用于多个目标。我希望它能够滚动到页面上的任何锚点,而无需编辑脚本。

Fiddle

这是匹配最接近的代码,我无法让它工作:

var $root = $('html, body');
$('a').click(function () {

    $root.animate({

        scrollLeft: $($.attr(this, 'href')).offset().left,
        scrollTop: $($.attr(this, 'href')).offset().top

    }, 500);

    return false;
});

它适用于JSFiddle,但是当我把它放在我的页面上时它不起作用。

为什么这不重复? 这是一个多方向脚本,不针对单个元素。它适用于页面上的所有链接。

1 个答案:

答案 0 :(得分:2)

我无法让你的jsfiddle工作,看看是否有效:

$(function(){
    $('a').on({
      click:function (e) {
        e.preventDefault();
        var root = $("html, body");
        var target = $(this).attr("href");
        root.animate({  
            scrollLeft: $(target).offset().left,
            scrollTop: $(target).offset().top
        }, 500);
      }
    });
)};