是否有内置的方法在jquery中同步调整大小动画?

时间:2011-11-30 11:35:29

标签: jquery animation synchronization sync

我做简单的手风琴(像这样)
|开||
使用jquery,我需要展开点击幻灯片并折叠其他。
所有幻灯片的宽度相等
用这样的东西做这件事很好。

$(this)
.next().animate({width: 160}, 500, "easeOutQuad")
.siblings("dd").animate({width: 0}, 500, "easeOutQuad");

但是我在动画期间在最后一个幻灯片按钮中抖动像素,因为调整大小不是同步 的 UPD
(实际上在每个帧函数上用浮点数计算当前宽度并将其舍入到 整数
当我们在某些帧上开始两个动画时,我们有两个数字,它们是圆形的 它导致失去一个像素)
我可以使用“step”功能设置width =(width-this.width)来折叠每个框架上的幻灯片,但我知道有最简单的解决方案。 感谢。

慢动作示例
http://jsfiddle.net/7tSMh/2/
点击绿色矩形,仔细看最后,蓝色矩形。如果没有看到问题,请做n次。

UPD
Firefox中没有问题 仅限Chrome

1 个答案:

答案 0 :(得分:0)

考虑实施自定义动画。 请查看jQuery .animate() docs中标题为“步骤功能”的部分。您可以编写选择器以同时包含所有元素,并使用自定义函数来检测当前正在调用的元素。

这至少应该通过同时在两个不同的元素集上调用.animate()来解决您所看到的交错动画的问题。