2012-03-02 185 views
-1
股利

我想在第一次點擊後3秒但首次點擊後,它會顯示當我點擊它會前3秒顯示在鼠標懸停

function Func1() 
{ 

document.getElementById('div1').style.visibility = "visible" ; 

} 

function Func1Delay() 
{ 

setTimeout("Func1()", 3000); 

} 

function Func2Delay() 
{ 

document.getElementById('div1').style.visibility = "hidden" ; 

} 
+0

抱歉,但你的描述沒有按沒有意義(至少不是英文版) – scibuff 2012-03-02 10:05:50

+0

請擴展您的問題;例如。 Func1Delay()如何調用etc? – giorgio 2012-03-02 10:06:08

+0

我想在3秒後在鼠標懸停上顯示div ..現在正在發生,但在此之後,我想在3秒前div!是否有可能 – 2012-03-02 10:08:54

回答

1

你的英語顯示或描述很差,但是從我明白了,你想是這樣的:

var div = document.getElementById('div1'),t; 
function changeStyle(element,prop,value){ 
    element.style[prop] = value; 
} 

function showDiv(){ 
    changeStyle(div,'opacity','1'); 
} 

function hideDiv(){ 
    changeStyle(div,'opacity','0'); 
} 

div.addEventListener('mouseover',function(){ 
    t = setTimeout(showDiv,3000); 
},false); 

div.addEventListener('mouseout',function(){ 
    clearTimeout(t); 
    hideDiv(); 
},false);​ 

這裏有一個演示:http://jsfiddle.net/gion_13/TSVA5/
你必須懸停「看不見」的DIV和3秒後,它會顯示。

0

這對我的作品

標記:

<input type="button" value="clickme" onmouseout="ClearIntv()" onmouseover="DelayShow('showMe',5000)" /> 
    <div id="showMe" style="display:none;background-color:red;width:50px;height:50px;"> 

    </div> 

腳本:

var intv; 
    function DelayShow(timeOutMs) { 
     var elm = document.getElementById("showMe"); 
     var now = new Date().getTime(); 
     var end = now + timeOutMs;; 
     intv = setInterval(function() { 
      now = new Date().getTime(); 
      if (now >= end) { 
       elm.style.display = "block"; 
       clearInterval(intv); 
      } 
     }, 500); 
    } 
    function ClearIntv() { 
     clearInterval(intv); 
    } 

激活鼠標懸停的櫃檯,並取消鼠標移開時