我将页面上的所有元素设置为绝对位置,这都是整数。虽然Chrome报告了正确的位置,例如前100名左15,jQuery报告一个非常奇怪的坐标顶部99.99999332427979离开15.454545021057129。是什么给了什么?
编辑:由于某些未知原因,它完全恢复工作,报告确切的整数。我真的不知道发生了什么,但它必须与margin-top,margin-left,border-top-width和border-left-width有关,因为它们在jquery position()中被解析为浮点数功能。在我的情况下,我不做任何动画,所以这个问题不是动画相关的
答案 0 :(得分:1)
只是一个猜测,但我认为它与浮点数和jQuery中的计算有关。
Float是一种保存数字的数据类型。带有大量小数的大数字或数字。看看数字,我很确定jQuery使用浮点数。
关于花车的一些事实:它们是不准确的。非常不准确,这往往导致像这样奇怪的数字。
谷歌似乎使用更准确的数据类型来计算头寸。您一定在想,为什么jQuery不使用准确的数据类型?这实际上是一个非常简单的问题。 jQuery使用计算结果产生十进制数(缓和等)以及各种形式的数据(像素,点,百分比等)。如果jQuery只使用整数而你只使用百分数,你会得到一个非常难看的动画。这就是为什么我认为jQuery使用浮点数,这解释了狡猾的数字。
最后,使用距离和时间计算jQuery动画的距离。可以说,jQuery每秒“更新”你的DOM 60次,你希望你的元素在一秒钟内移动60个像素,它会在每次“更新”时将你的元素移动一个像素。但是,如果你希望在一秒内移动你的元素61像素,你不必认真地知道它会导致一个狡猾的数字...你的元素将每秒移动1.01666667像素。这也解释了为什么我认为jQuery使用浮点数......
我担心你真的无能为力。你可以把数字四舍五入。