Jquery 滚动到div,其中一些px在较短的时间内

Jquery 滚动到div,其中一些px在较短的时间内,jquery,Jquery,我在Stack Overflow中找到了一个用jQuery编写的简单脚本,它允许通过单击按钮平滑滚动到特定的div id: $("#button").click(function() { $('html, body').animate({ scrollTop: $("#myDiv").offset().top }, 2000); }); 一切工作都很完美,但我有一个小问题:在我的网站上有一个固定的菜单,这使这个脚本混乱不堪。当我单击滚动到特定div的按钮时,菜单会获取我想要查看的div

我在Stack Overflow中找到了一个用jQuery编写的简单脚本,它允许通过单击按钮平滑滚动到特定的div id:

$("#button").click(function() {
$('html, body').animate({
    scrollTop: $("#myDiv").offset().top
}, 2000);
});
一切工作都很完美,但我有一个小问题:在我的网站上有一个固定的菜单,这使这个脚本混乱不堪。当我单击滚动到特定div的按钮时,菜单会获取我想要查看的div的一部分(覆盖div),因此100%的人看不到该div

我想问一下,是否有一种方式可以滚动到一个特定的div,删除一些px,相当于菜单中px的高度

例如:

第页:

我点击按钮,我得到这样的效果:

但我想要这种效果:


只需获取菜单栏的高度,然后从偏移量中减去它,例如,如果菜单为60px

$(“#按钮”)。单击(函数(){
$('html,body')。设置动画({
scrollTop:$(“#myDiv”).offset().top-60
}, 2000);
});