【发布时间】:2011-10-25 13:39:31
【问题描述】:
在 Chrome 中,元素的计算“top”属性可能与通过设置其样式指定的“top”属性不同。这导致我出现动画问题。似乎 jQuery animate 从查找当前 computed 样式开始,但它通过设置 specified 样式进行更新。
我想知道如何最好地解决这个问题。
我创建了一个 simple example 的问题。在 Firefox 中,在框中输入一个值,例如-500,然后单击 Go,它会为标尺的“顶部”属性设置动画,使指针指向 500。输入 499 并单击 Go,标尺几乎不会改变。现在在 Chrome 中尝试同样的操作,缩放设置为 83%。当你从 500 到 499 时,动画中会有一个大混蛋。这是因为 jQuery 是从 -416px 的计算顶部开始,然后将其动画到指定的 -499px 顶部。
更新。有人建议在动画中使用百分比值而不是像素值。那行得通-谢谢!有没有更好的方法让我坚持使用旧的基于像素的代码?
【问题讨论】:
-
尝试将 70% 作为内部的最高值而不是绝对值,看看会发生什么。
-
您能描述一下您的目标吗?动画应该做什么?
-
我的动画将#inner 上下移动到指定的像素值。例如,我可能会将#inner 设置为-1000px,然后再设置为-1050px。您可以将#inner 视为显示一个高大的仪表,并且在其一侧的固定位置有一根针。
-
当我使用 % 值而不是像素时,计算的“顶部”和实际的“顶部”确实相等。这解决了我的问题,谢谢。 (但它需要我进行令人讨厌的计算,将所有像素转换为百分比。)
标签: jquery css google-chrome jquery-animate