2012-01-03 12 views
0

私はお互いに並んで浮かんでいる画像の一覧と、ページ上部のJavaScriptコールへのリンクを持っています。リンクをクリックすると、表示されているすべてのイメージが縮小して消え、選択したアイテムが展開されて表示されます。jQueryアニメーション - 最初の実行後に一貫性がありません

これは初めて正常に動作します。しかし、その後の選択の変更は、フェージングが常に起こるわけではない、予測できない結果をもたらします。

私はjsFiddle exampleを作成しました。これは問題をよりよく示しています。どんな助けでも大歓迎です。

Chris。

+0

イムを。たとえば、「One」リンクをクリックするとどうなるでしょうか? – Evan

+0

最初の実行中に正しく動作します。リンクは、基本的にはコンテンツフィルタ(正しく動作する)です。何が動作しないのは、最初の実行後のトランジションアニメーションです。それは役に立ちますか? –

答えて

1

問題は、アニメーションがコールバックと同様に個々の要素ごとに個別に実行されることです。したがって、showListは15回実行されています。

これを回避する方法の1つは、カウントを使用して最後のアニメーションがいつ実行されたかを追跡することです。たとえば:

function collapseList(selectedFilter) { 
    var els = $('.listItem'), 
     count = els.length; 

    els.animate({ 
     opacity: 0, 
     width: "0px", 
     height: "0px" 
    }, 2000, function() { 
     if (!--count) { 
      els.hide(); 
      showList(selectedFilter); 
     } 
    }); 
} 

は、ここでそれを試してみてください。行うことになっている正確にわからないhttp://jsfiddle.net/msb9p/11/

+0

ありがとうございます。それはそれを修正した。私はアニメーションについて読んだが、その影響を見ることはできなかった。 –

関連する問題