このスライド効果を作成しようとしていますが、私が抱えている唯一の問題はキューイングです。
$(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));
});
上記のコンテナ変数は現在のコンテナです。:not(container)を実行したので、現在のコンテナーはアニメーションを続行します。これはすべて、コンテナ要素のIDとアニメーションの実行方法(キーワードだけがifステートメントを実行する)の2つの属性を持つ関数に含まれています。次に、次のようなアニメーションをアクティブにするメニューがあります。
if($(this).attr('name') == 'home') {
animation('home', 'top');
}
else if { .....
アニメーションの再起動機能は、他のすべてのアニメーション要素を元の位置に再起動するだけなので、再度実行できます。ここで問題となるのは、再起動機能が実行されるまで遅延があるため、遅延時間内に2つのメニュー項目をクリックすると、再起動機能が実行され、すべてが非常に混乱することになります。
アニメーションを元の位置に戻す方法が必要です。これにより、アニメーションを再び実行できるようになりますが、他のアニメーション要素に干渉して再起動することはありません。そうでなければ、私たちは大きな混乱に終わります。効果を試すことができるように、簡単なjsFiddleを設定しました。現時点ではコードが少し乱雑で、終了したらすべてを整理することを計画していましたが、このキューイングの問題により、本当に行き詰まりました。http://jsfiddle.net/qe7dj/