我试图在标题中尽可能详细,但它总是模糊不清。所以,我会阐述在这里:为多个元素创建一个同步动画
我有以下HTML:
<span class="item c1"><!--content--></span>
<span class="item c2"><!--content--></span>
<span class="item c3 c2"><!--content--></span>
<span class="item c1"><!--content--></span>
<span class="item c1 c4"><!--content--></span>
好吧,假设<!--content-->
的大小始终是不同的,其中 - 在这种情况下 - 意味着在同样宽度元素将会不同。
所以,我需要做的是以某种方式“过滤”他们的内容类。基本上我需要让他们消失,并在筛选器被选中时重新出现。
我让他们消失的方法是使用jQuery的.animate()
其宽度0px
和不透明度设置为0
—这一切发生的过渡性。
当下DOM负载,我自己的“原创”宽度保存到data-*
属性:
jQuery(function(){
jQuery('.item').each(function(i, e) {
var $e = jQuery(e);
$e.data('origWidth', $e.css('width'));
});
});
现在,正在被再次显示,当他们(或重新过滤,如果你愿意)他们都得到同样的宽度(我知道为什么,但我不知道它周围的路):
jQuery('.c'+id+'.item').stop().animate({
'width' : jQuery('.c'+id+'.item').data('origWidth'),
'opacity' : 1
});
//NOTE: the [id] in the above snippet is passed by a
//function and is the category id.
那么,什么我的“真实”的问题是:有没有一种方法来同步通过一个jQuery数组迭代,动画属性–或沿着这些线的东西。
谢谢!
'$ e.css( '宽')'和'$ e.width取代它()'和'的jQuery(” C - '+ id +'。item')'vs'jQuery('。c'+ id +'。item')'typo? – Cheery 2012-02-11 20:12:42
你可以在jsfiddle.net上设置一个例子吗? – Richard 2012-02-11 20:21:38