Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Scrolltop未转到正确的位置_Javascript_Jquery_Html - Fatal编程技术网

Javascript Scrolltop未转到正确的位置

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

我试图使用下面的代码将div顶部的焦点放在锚点单击上

$('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()的值