2011-07-18 18 views
1

マウスが画像上に2秒以上ぶら下がっているときにウィンドウを表示しようとしていますが、ユーザーが少なくとも2秒間マウスを動かしていなければウィンドウを表示したくない。Javascript:2秒のマウスオーバー時間間隔での表示ウィンドウ

以下は、私が使用したコードのスニペットです。コードが表示されているので、ユーザーが画像にどれくらいの時間をかけていたかにかかわらず、ウィンドウは2秒で表示されます。 Netflixで遅延ホバー効果に似た何かを取得しようとしています。私はそれがすべて間違っていると確信しています。あなたの助けを事前に感謝します。

<img name="img4" onMouseOver="WindowDelay(this);" onmouseout="closeDetails();" 
     src="images/MyImage.jpg" height="240" width="166"/> 

<script language="JavaScript" type="text/javascript"> 
     var countTime = 0; 
     var windowTimer = null 

     function WindowDelay(thatImg) 
     { 
      windowTimer = window.setInterval(function() {countT(thatImg);}, 1000); 
     } 

     function countT(thatImg) 
     { 
      countTime++; 

      if (countTime == 2) 
      { 
       openDetails(thatImg); 
       clearInterval(windowTimer); 
       countTime = 0; 
      } 

     } 
</script> 
+0

よく似た質問/回答があります。http://stackoverflow.com/questions/6701056/image-resizing-jquery – jfriend00

+0

jqueryについて聞いたことがありません。私はまだそれを私の本の中ではまだ得ていないと思う。確認してみるよ。ありがとう – yerty

+0

jQueryは、フリーでオープンソースのjavascriptライブラリで、多くのブラウザ(http://jquery.com/)でより多くのWebプログラミングをより速く簡単にできます。非常に人気があります。いくつかの点では、Web上のサイトの約35%が認識可能なライブラリを使用しているサイトのほぼ80%で使用されています。 – jfriend00

答えて

3

マウスが要素を超えたら、setTimeoutを使用して2秒でウィンドウを開きます。ユーザーが要素からマウスを離した場合は、clearTimeoutを使用して将来のウィンドウのオープンを停止します。

+1

'clearTimeout'ではなく' cancelTimeout' – locrizak

+0

ありがとう、私は答えを修正しました。 –

+0

それはトリックでした。みんなありがとう。 – yerty