2012-03-02 190 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); 
    } 

激活鼠标悬停的柜台,并取消鼠标移开时