我試圖創建這種滑動效果,但我遇到的唯一問題是排隊。jQuery中的通用動畫隊列?
$(this).animate({'left' : '0%'}, randTime, function() {
$(this).animate({'boxShadow' : 'none'});
setTimeout(function() {
$container.children('.slice').addClass('noshadow');
$('body > div:not(#'+container+') .slice').each(function() {
restartAnimation($(this));
});
$container.children('.content').fadeIn();
}, (aLength+100));
});
上面的容器變量是當前容器。我做了:沒有(容器),所以當前的容器將繼續動畫。這全部在一個包含兩個屬性的函數中,即容器元素的ID和動畫將運行的方式(僅關鍵字貫穿if語句)。然後,我將有激活這樣的動畫菜單:
if($(this).attr('name') == 'home') {
animation('home', 'top');
}
else if { .....
重啓動畫功能只需重新啓動所有其他的動畫元素到原來的位置,使他們能夠再次運行。現在,問題是,直到重新啓動功能運行纔會有延遲,所以如果在延遲時間內單擊兩個菜單項,最終重新啓動功能運行,然後一切都變得非常困惑。
我需要一種方法將動畫重新啓動回原來的位置,以便它可以再次運行,但不會干擾並重新啓動其他動畫元素。否則,我們會陷入一片混亂。我已經建立了一個快速jsFiddle,所以你可以嘗試一下效果。這段代碼現在有點亂,我計劃在完成後整理一切,但這個排隊問題真的讓我陷入了困境。 http://jsfiddle.net/qe7dj/
1+不錯的效果。 – Eonasdan 2012-07-10 17:46:32
是boxShadow的動畫嗎?或者你想使用.css()? – Bergi 2012-07-10 19:05:04