Javascript Scrolltop未转到正确的位置
我试图使用下面的代码将div顶部的焦点放在锚点单击上Javascript Scrolltop未转到正确的位置,javascript,jquery,html,Javascript,Jquery,Html,我试图使用下面的代码将div顶部的焦点放在锚点单击上 $('html, body').animate({scrollTop: $("#" + divid).offset().top}, 100); 但是,它并没有滚动到div的顶部,而是焦点转到div内部的某个位置。我交叉检查了offset().topdiv的值与Page Ruler chrome插件中的top值保持同步。因此,理想情况下,它应该滚动到div的顶部。任何建议都会非常有用。您的小提琴似乎工作正常(除了您在单击处理程序中忘记了pre
$('html, body').animate({scrollTop: $("#" + divid).offset().top}, 100);
但是,它并没有滚动到div的顶部,而是焦点转到div内部的某个位置。我交叉检查了
offset().top
div的值与Page Ruler chrome插件中的top值保持同步。因此,理想情况下,它应该滚动到div的顶部。任何建议都会非常有用。您的小提琴似乎工作正常(除了您在单击处理程序中忘记了preventDefault()
)
通常,您需要考虑滚动容器(您的案例中的窗口)上的边框、填充和边距。对于一般解决方案,请查看。尝试以下操作:尝试从
div
中删除上下边距和填充,看看是否有帮助。该div没有上下边距。此外,offset.top()值也是正确的。但由于某种原因,焦点进入div内部,就好像给scrollTop分配了一个大于offset.top()的值