私はホバー時に、いくつかのテキストを表示すること<のdiv >を持って去ります。マウスが離れると、テキストがフェードアウトします。 fadeOut
が完了する前に、しかし、マウスは再び<のdiv >に入った場合、テキストが再び表示されません。はjQueryの - 進捗(フェードアウト)でアニメーションを停止し、マウスが入ったときに再び表示さ/迅速
私はhoverintent
を認識していますが、mouseEnter/mouseLeave
イベントに与えるわずかな知覚遅延のために使用しないことをお勧めします。
mouseEnter
には、fadeOut
がクリアされ、再度テキストが表示されますか?
タイムアウトを使用して私の現在の試み:
var timeouts = {};
$(document).ready(function(){
$('#wrapper').hover(function(){
clearTimeout(timeouts['test_hover']);
$('#text').show();
}, function(){
timeouts['test_hover'] = setTimeout(function(){
$('#text').fadeOut('slow');
});
});
});
jsbin:http://jsbin.com/upotuw/5
ビデオ:http://www.youtube.com/watch?v=7RLrz1bEQuU
-
EDIT:問題はstop()
関数に、両方のパラメータを渡すために必要とされました:stop(true,true)
最終作業コードは次のとおりです。
var timeouts = {};
$(document).ready(function(){
$('#wrapper').hover(function(){
clearTimeout(timeouts['test_hover']);
$('#text').stop(true,true).show();
}, function(){
timeouts['test_hover'] = setTimeout(function(){
$('#text').fadeOut('slow');
});
});
});
ああ。私は前にそこで「停止」を持っていたが、真の両方の変数を渡すことを怠っ。 'stop(true、true)'が働いた。 – waffl