一些上下文:我正在尝试动画滚动到特定元素,我通过调用以下代码来完成此操作$(document).ready()
:
$('html, body').animate(
// properties
{
scrollTop: $("#element").offset().top
},
// duration
500,
// easing
"easeOutCubic"
);
我的问题是,对于某些元素,$("#element").offset().top
实际上会在我启动动画和将其变为目标元素的时间之间发生变化。
我的元素是完全静态的:我不执行 DOM 操作,也不调整任何东西的大小。我在 CSS 中指定尺寸,等到$(document).ready()
,然后向下滚动。
我可能做错了什么?我是否过早地启动动画,或者在不正确的事件处理程序中?动画的行为会以某种方式修改我的元素的位置吗?
可能的相关点:
- 我正在使用 Google 网络字体和多种
面孔样式。也许有一些渲染错误? - 我在谷歌浏览器中运行它。
我已经检查过了,这个问题并没有在 Safari 中表现出来。编辑:不,它也发生在 Safari 中。