关于javascript:jQuery Smooth滚动到任何锚点

jQuery Smooth Scroll to any Anchor

本问题已经有最佳答案,请猛点这里访问。

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

小提琴

这是最匹配的代码,我无法使其工作:

1
2
3
4
5
6
7
8
9
10
11
12
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中工作,但是当我把它放在我的页面上时它不起作用。

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


我不能让你的jsfiddle工作,看看这是否有效:

1
2
3
4
5
6
7
8
9
10
11
12
13
$(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);
      }
    });
)};