如果用户未点击鼠标 20秒,我想淡出div。
我有以下代码:
if($('.main-popup2').is(":visible")){
setTimeout(function() {
$('.main-popup2').fadeOut('fast');
}, 20000);
}
问题是我在检测到用户鼠标点击后不知道如何重置setTimeout。
谢谢!
答案 0 :(得分:7)
.setTimeout()方法实际上返回对它创建的计时器的引用。可以在.clearTimeout中使用此引用来在计时器执行之前停止计时器。
以下是如何使用它的示例:
var timer;
if($('.main-popup2').is(":visible")){
// create the timer and save its reference
timer = setTimeout(function() {
$('.main-popup2').fadeOut('fast');
}, 20000);
}
// when clicking somewhere on the page, stop the timer
$(document).click(function() {
clearTimeout(timer);
}):
答案 1 :(得分:1)
var timeout = null;
var fadeElement = $('.main-popup2');
function fader() {
if(null !== timeout) {
clearTimeout(timeout);
}
fadeElement.stop();
timeout = setTimeout(function () {fadeElement.fadeOut('fast');}, 2000);
}
$(document).click(fader);
fader();
答案 2 :(得分:1)
使用延迟功能。
(window).click(function () {
$('.main-popup2').delay(6000).fadeOut(300);
}
每次点击重启6秒,之后重播.main-popup2 fadeout如果没有'