2012-03-25 7 views
1

カーソルがページのどこにでも移動すると表示される要素があります。前記要素の上をホバリングする)。JQueryを使用してカーソルを移動したときに要素を表示/非表示する最適な方法

これは私が得た最も近いものです。問題は、要素を隠すとアニメーションが何度も何度も何度も繰り返し再生されることです。私は.stop()が答えかもしれないと思ったが、もしそれがわかっていれば私はどのように考え出すことができない。

bkLib.onDomLoaded(function() { 

setTimeout(function() { 
    $("#footer").hide('blind', 500) 
}, 5000); 

$('html').mousemove(function() { 
    if($("#footer").is(':hidden')) { 
     $("#footer").show('blind', 500); 
    } 

    if($("#footer").is(':visible') && !$("#footer").is(':hover')) { 
     setTimeout(function() { 
      $("#footer").hide('blind', 500); 
     }, 5000); 
    } 
}); 

}); 

答えて

0

別のものを設定する前に、あなたのタイムアウトをクリアしてみてください。

bkLib.onDomLoaded(function() { 

var timeoutID = setTimeout(function() { 
    $("#footer").hide('blind', 500) 
}, 5000); 

$('html').mousemove(function() { 
    if($("#footer").is(':hidden')) { 
     $("#footer").show('blind', 500); 
    } 

    if($("#footer").is(':visible') && !$("#footer").is(':hover')) { 
     clearTimeout(timeoutID); 
     timeoutID = setTimeout(function() { 
      $("#footer").hide('blind', 500); 
     }, 5000); 
    } 
}); 

}); 
+0

完璧、よろしくお願いします。 – tsvallender

0

は、コードとこの事のミックスを使用しよう:

$('#myelement').is(":animated") 

だから、あなたはそれが見えるのかどうかを推測することができます現在進行中のことがあります

関連する問題