jQuery:向scrollTop添加额外的像素

jQuery:向scrollTop添加额外的像素,jquery,css,Jquery,Css,我使用下面的代码来平滑用户单击其href以“#”开头的链接时的移动 我需要向scrollTop值添加大约40px,这样停止点就不会覆盖内容。我将代码修改为这样,但它似乎没有这样做(注意代码末尾的+40): 实际上希望成为-40偏移量的+40偏移量不起作用,因为动画完成后,浏览器会进行默认反应,即使用传递给window.location.hash的id转到元素 您可以删除该行或将以下css添加到滚动到的元素中 padding-top: 40px; margin-top: -40px; 请看我知道

我使用下面的代码来平滑用户单击其
href
以“#”开头的链接时的移动

我需要向scrollTop值添加大约40px,这样停止点就不会覆盖内容。我将代码修改为这样,但它似乎没有这样做(注意代码末尾的+40):


实际上希望成为
-40
偏移量的
+40
偏移量不起作用,因为动画完成后,浏览器会进行默认反应,即使用传递给
window.location.hash的
id
转到元素

您可以删除该行或将以下css添加到滚动到的元素中

padding-top: 40px;
margin-top: -40px;

请看

我知道一个迟来的答案,但寻求解决方案的人可以试试这个

通过添加.top+(-40)就可以了

$('html, body').stop().animate({
    'scrollTop': $target.offset().top + (-40)
}, 900, 'swing', function () {
    window.location.hash = target;
});

您在正确的位置添加了
+40
。发生了什么事?我刚刚加了40回,请看一看。无论我添加了什么值,它都会在同一个位置停止。您是否验证了
$target.offset().top
返回了预期值?谢谢,按照您的建议,调整了我的js,为我的目标添加了一类“targeted”;然而,即使我可以为我的“.targeted”div调整css,如果人们开始上下滚动,页面看起来也不会很好,因为他们会看到我的css增加的间隙。我希望我说的有道理。是
window.location.hash=target行对代码中的其他函数至关重要?不,不是。可以删除它。然后,我只需删除该行,只要您将其更改为
-40
偏移量,您的代码就可以正常工作祝你好运!令人惊叹的!非常感谢。这是一个更好的解决方案,不会干扰css类的切换。这对我来说不起作用,一旦平滑动画完成,它会在最后进行额外的快照。
padding-top: 40px;
margin-top: -40px;
$('html, body').stop().animate({
    'scrollTop': $target.offset().top + (-40)
}, 900, 'swing', function () {
    window.location.hash = target;
});