强制jQuery动画使用整数值

有没有办法(保持前向兼容性)强制jQuery动画在动画中只使用整数值?

我正在设置元素的宽度。

...

在动画制作过程中,我会检查检查器中的元素,并且通常该值具有hex的大量粒度。

 
...

一旦达到目标,它只会“平息”整数。

 
...

通常我不会为此烦恼,因为它显然是function性的。

但是,在这个项目中,我必须始终保持像素完美,并且我担心使用小数像素宽度(或以像素为单位测量的任何其他属性)会在浏览器之间呈现不一致。 我知道一个人的letter-spacing

有没有办法确保即使在动画中间jQuery也只使用无十进制值?

编辑:我觉得我应该澄清; 我不只是使用.animate({width:50}) 。 我的大多数动画都是jQuery UI .show().show() s,而我正在寻找的解决方案显然也适用于那些。

对我来说,这是以正确的方式工作:

 $("div").animate({ width: 50}, { duration: 1000, step: function(now, fx){ fx.now = parseInt(now); } });​ 

像这样的东西?

 $("div").animate({ width: 50}, { duration: 1000, step: function(now, fx){ var value = parseInt($(this).css("width")); $(this).css("width", value); } });​ 

这样,在动画的每个“帧”中,宽度值将被解析为整数值。

这种方式动画会更不平滑,因为你正在削减一些值,但如果你的动画足够长,它就不会被注意到。