我尝试了很多不同的代码来平滑滚动到锚点。我找不到一个有效的。它需要能够垂直,水平和对角滚动。我与其他人发现的另一个问题是它们似乎不适用于多个目标。我希望它能够滚动到页面上的任何锚点,而无需编辑脚本。
这是匹配最接近的代码,我无法让它工作:
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,但是当我把它放在我的页面上时它不起作用。
为什么这不重复? 这是一个多方向脚本,不针对单个元素。它适用于页面上的所有链接。
答案 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);
}
});
)};