我将平滑滚动集成到页面的 anchor 中。它与代码配合得很好:
$(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;
}
}
});
});
现在,当我单击链接时,它会滚动到该位置。但是因为我在顶部有一个固定的菜单栏(高度:100px),所以它与内容重叠了一点。我能以某种方式解决这个问题吗?就像在代码中说的那样:滚动到那个 anchor 减去 100px ...我认为它可能适用于
scrollTop: target.offset(-100).top
是这样吗?
jQuery 的 offset是一个只给你一个元素偏移量的函数。这并不是要更改偏移量本身。之后减去 100px。
scrollTop: target.offset().top - 100
我是一名优秀的程序员,十分优秀!