私はそれが覆われたときに不透明度を変更するボタンを持っています: (正常に動作します)
$("#btn").hover(function() {
$(this).animate({"opacity":1},100);
}, function() {
$(this).animate({"opacity":.8},100);
});
そしてそれが押されると、それは下に移動します: (あまりにもうまく動作します)
$("#btn").on("click",function(){
$(this).animate({"margin-top":"-100px"},400);
});
問題:ボタンが移動すると、そのボタンはホバーエリアから離れて移動し、 しかし 最初のホバー状態はまだアクティブです(最初のホバー状態ホバー状態は、マウスがボタンの上にホバーされているときのみアクティブにする必要があります)。しかし、そこからマウスを移動すると、マウスが動くというjquery通知として2番目の状態がトリガされます。
hover()がマウスを動かさなくてもトリガする方法はありますか?
回答:
回答№1の場合は3つかいます $(this).trigger("mouseout")
これにより、正しい hover()
発射するハンドラ。
デモ: http://jsfiddle.net/alan0xd7/va87ff96/
回答№2の場合は0
私がうまく理解していれば、移動した後にホバー状態がまだアクティブであるという問題があります。
次にアニメーションに不透明度を追加してみませんか?
$("#btn").on("click",function(){
$(this).animate({"opacity":.8,"margin-top":"-100px"},400);
});