2011-07-18 35 views
1

当鼠标悬停在图像上2秒或更长时间时,我尝试显示一个窗口,当然如果用户至少2秒钟没有悬停,不希望显示窗口。Javascript:在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库,可以在许多浏览器中使许多web编程更快更简单:http://jquery.com/。它非常受欢迎。从某种意义上说,网站上大约35%的网站使用这种网站,其中有近80%的网站使用可识别的图书馆。 – jfriend00

回答

3

当鼠标移过元素时,使用setTimeout在两秒钟内打开窗口。如果用户将鼠标悬停在元素上,请使用clearTimeout来停止未来的窗口打开。

+1

其'clearTimeout'不'cancelTimeout' – locrizak

+0

谢谢,我解决了答案。 –

+0

这样做。多谢你们。 – yerty

相关问题