我认为没有一种简单的方法可以在任何给定状态下同步两个动画 - 我的意思是,如果你将“飞机”添加回页面,而“汽车”动画只是完成了一半,那么你会有麻烦了。除非...
以下是一些解决方法:
1)把动画放到一个类中:
.im-animated { animation:customAnim 5s infinite; }
然后通过 jQuery onload 切换类,并在将飞机添加回页面时再次切换它。这样,飞机和汽车的动画就会重新开始。
例如:
var $autos = $('.automobiles'),
$planes = $('.airplanes'),
$both = $autos.add($planes),
animClass = 'im-animated';
$(document).one('ready',function(){
$both.addClass(animClass);
/* ...more stuff happens here... */
$planes.hide();
/* ...more stuff happens here... */
$both.removeClass(animClass).addClass(animClass).show();
});
2)不要真正隐藏 .airplanes,而是将其移出屏幕:
$planes.css({'position':'absolute','left':'-9999px'});
所以动画将继续运行。然后只是$planes.removeAttr('style');
,或以另一种方式将其放回原处。