0

グラフィカルな背景 div に対してレイアウトされた 3 つのテキスト ボックスのセットで構成される jQuery コンポーネントを作成しました。各ボックスにカーソルを合わせると、ボックスに関連する対応する背景グラフィックが入れ替わります。アニメーションは、fadeIn/fadeOut コールバックを使用して行われます (fadeOut が完了すると、fadeIn が発生します)。

私が経験している問題は、マウスをボックス #1 からボックス #3 へ、ボックス #2 を横切ってすばやくパスすると、ボックス #2 に関連するイメージ スワップが不必要に行われ、フェードがスムーズに設定されているため、時々すべてのイメージ スワップが完了するまでにかなりの時間がかかります。もちろん、私は素人 (資格のない Web ユーザー) の言葉で言っています。jQuery は何が「不必要」かを知りません。私が本当に言いたいのは、スマートに行動する方法があるかどうかを尋ねることです-あなたはそれを挙げます:-イベントをキューに入れ、おそらく新しいものが登場する前に間に合わなかったものをフラッシュするか、またはプロパゲーションを停止するか、または何か-いいえ。

私はイベントをあまり扱っていないので、一般的な質問で失礼します。本当に役立つ場合は、サンプルコードを提供できます。

ありがとう。

4

1 に答える 1

0

HTMLとJavaScriptを提供した場合は、より具体的にアドバイスすることができますが、.stop(true)新しいアニメーションを開始する前に追加する必要があります。これにより、前のアニメーションが停止し、アニメーションキューから削除されるため、次のアニメーションをすぐに開始できます。

たとえば、これの代わりに:

$("whatever").fadeIn();

あなたはこれをするでしょう:

$("whatever").stop(true).fadeIn();

がないと.stop(true)、前のアニメーションが終了する前に次のアニメーションが開始された場合、アニメーションがキューに積み重なる可能性があります。これは、ホバートリガーアニメーションの場合に簡単に当てはまります。

詳細については、 jqueryのドキュメントを参照してください.stop()

于 2012-04-17T00:54:42.733 に答える