私はdiv
をスライドさせてホバーすると、マウスがそれぞれ入り、離れるようにしようとしています。しかし、私が何度も出入りしたとき、div
は基本的にホバーをやり遂げた回数に前後していた。これはjsFiddle exampleを参照してください。jQueryアニメーション:一度マウスを外してアニメーションを停止する
あなたはおそらく推測したように、何度何回マウスを重ねていても、マウスが要素の外に出ると、div
を停止させる(つまり滑らせる)ことを望んでいます。私は、jQueryアニメーションについての理解に欠けているものがあると思います。
$("#state-slider").hover(function() {
$(this).animate({
left: '0'
}, 500);
}, function() {
$(this).animate({ left: "-270" }, 500);
});
ありがとうございます。
これは完全に機能します。ありがとうございました!なぜマウス入力時に '.stop()'が必要なのか知っていますか?そうでなければ@ 3nigmaの答えのような "ジャンプ"があるので私はそれを持っている必要があることを知っています。しかし、私はそれの背後にある推論を確信していません。 – moey
@ Siku-Siku.Com:マウス入力とマウス離しの両方で '.stop() 'を使用する理由は、マウスをdivの上に置いて離して移動した後に再び戻すと明らかになります。ユーザーがそれから期待しているのは、 "ターンアラウンド"するdivです。つまり、何をしているのかを止めて、代わりに新しいものをやります。それは正確に '.stop()'がすることです。明確化のために+1 –
+1! – moey