2010-12-27 8 views
2

マウスの上のサムネイルを囲むように、マウスが置かれたところにアニメーションを付けるいくつかの枠線があります。ユーザーがマウスを2つの間で繰り返し動かすと、アニメーションにはユーザーが移動する前に終了する時間がありません。その結果、マウスが動いていなくても、キューに入れられたすべてのアニメーションが終了するまで、2つのイメージの間で境界が前後に跳ね返り、それには時間がかかります。これを防ぐため、.animate()の前に.dequeue()を追加しました。他のアニメーションを実行している場合を除いて、これはうまくいきます。私はこれらを停止/デキューしたくありません。
アニメーションを選択的にデキューする方法はありますか?私が除外したいのはスクロールアニメーションで、これもまたマウスセンターでトリガーされます。jQuery:デキュー専用のアニメーション

+0

重複:http://stackoverflow.com/questions/1427678/jquery-interrupt-animation – ifaour

+0

重複していません。そのスレッドは一般的なデキューについてです。 – Nathan

+0

IDEA!複数のキューを使用してこれを行うことは可能ですか?だから、境界のアニメーションを一つのキューに入れ、スクロールを別のキューに入れ、私が望むものを止めるだけです。それは働くだろうか?私は決して 'queue()'のことを知りませんでした。私はいくつかのことを指摘したいと思います。 – Nathan

答えて

0

thisのようなものをお探しですか?

EDIT: ああ、私が考える最も近い解決策は、hereです。

+0

これは一般的な停止です。私は他のボーダーのアニメーションを止めるために探しています*。 – Nathan

0

これを組み込む方法はありません。私は、アニメーションエンジンのかなりの部分を書き直すことを含まないアプローチを見つけるとは思わないでしょう。アニメーションは、キューに入れられたときにオブジェクトを取得します。それはloops though all properties in the object and determines the start value and end valueです。アニメーションのステップで値を取得するには(イージングに応じてここではlinearを使用します)、それはmultiplies that differencethe percentage along the animation isです。

これはすべてプロパティのグループとして処理されます。実際にはそれらを分割して、一部のアニメーションを停止することはできません。他のものを停止することはできません。 の場合は、別々に扱うのは非常に大きなパフォーマンス上のペナルティです(このコードが何回実行されるか考えてみてください)。そうしたまれなケース(ここでのニーズ)のために、他の99%のケースに適合するパフォーマンスルートです。

関連する問題