我试图了解如何在jQuery中同时制作更多元素的动画。
我们说我有一个简化的代码:
var $targetElement = $('#target-element');
var offset = $targetElement.offset();
var width = $targetElement.outerWidth();
var height = $targetElement.outerHeight();
var bodyWidth = $('body').width();
var bodyHeight = $('body').height();
$topHelper.animate({
height: offset.top
});
$rightHelper.animate({
top: offset.top,
width: bodyWidth - offset.left - width,
height: height
});
$bottomHelper.animate({
height: bodyHeight - offset.top - height
});
$leftHelper.animate({
top: offset.top,
width: offset.left,
height: height
});
targetElement
是身体中的一个元素,而所有helpers
都是黑色半透明绝对定位的层(身体右侧),它们应该覆盖 targetElement' s 边界框。
问题是在动画期间我可以看到动画层之间的微小(1px - 3px)间隙或重叠。它的边缘应该始终彼此相邻。我认为这是因为我为4个元素制作动画,每个元素都有自己的&#f;' fx'队列。因此,有4个定时器和“帧”刷新'并非所有人都在同一时间。
这是真的还是我完全错了?如何同步更多元素的动画?
编辑来自以下评论:
requestAnimationFrame
看起来很有希望,不幸的是我需要支持IE9。