2015-04-16 44 views
0

我有這個隱藏了4秒鐘不活動的div的javascript。在鼠標移動和點擊上更改狀態

var timeout; 
var isHidden = false; 

function hideOnIdle() { 
if (timeout) { 
    clearTimeout(timeout); 
} 
timeout = setTimeout(function() { 
    if (!isHidden) { 
     document.getElementById("slide").style.opacity = "0"; 
     isHidden = true; 
    } 
}, 4000); 
if (isHidden) { 
    document.getElementById("slide").style.opacity = "1"; 
    isHidden = false; 
} 
} 

if (document.addEventListener) { 
document.addEventListener("mousemove", hideOnIdle); 
} else { 
document.attachEvent("mousemove", hideOnIdle); 
} 

如果您移動鼠標,這將再次顯示div。

如何修改javascript並在點擊後再次顯示div?

https://jsfiddle.net/Lcqumf2y/

謝謝。

+0

'document.addEventListener( 「點擊」,hideOnIdle);' – adeneo

+0

只會改變,如果你點擊,我想這兩個@adeneo – Federico

+0

然後你用兩個,你只能在每個聽衆中添加一個事件 – adeneo

回答

0

我改變了你的jsfiddle例如:

var timeout; 
 
var isHidden = false; 
 

 
function hideOnIdle() { 
 
    if (timeout) { 
 
     clearTimeout(timeout); 
 
    } 
 
    timeout = setTimeout(function() { 
 
     if (!isHidden) { 
 
      hide(); 
 
     } 
 
    }, 4000); 
 
    if (isHidden) { 
 
     show(); 
 
    } 
 
} 
 

 
function hide() { 
 
    document.getElementById("slide").style.opacity = "0"; 
 
    isHidden = true; 
 
} 
 

 
function show() { 
 
    document.getElementById("slide").style.opacity = "1"; 
 
    isHidden = false; 
 
} 
 

 
if (document.addEventListener) { 
 
    document.addEventListener("mousemove", hideOnIdle); 
 
    document.addEventListener("click", hideonIdle); 
 
} else { 
 
    document.attachEvent("mousemove", hideOnIdle); 
 
}
#slide { 
 
    transition: all .2s linear; 
 
}
<div id="slide">ABC123</div>

+0

btw:'show'和'hide'應該交換他們的名字 – marcel