2011-08-09 66 views
1

我想让div每次出现10秒钟,每1分钟一次。因此,在一分钟开始时,div应该出现10秒钟,走开,然后在50秒后再次出现,并且继续。关于setInterval函数的问题

我唯一能弄清楚的是如何在10秒后消失。

$(function() { 

    setInterval(function() { 
     hideMsg() 
    }, 10000); 

    function hideMsg() { 
     $('#header p').css('display', 'none'); 
    }  
}); 

回答

3
$(function() { 

    showMsg();  
}); 
function showMsg() 
{ 
    $('#header p').css('display', ''); 
    setTimeout(hideMsg, 10000); 
} 
function hideMsg(){ 
    $('#header p').css('display', 'none'); 
    setTimeout(showMsg, 60000); 
} 

就是这样,

showMsg将显示消息结束超时将10秒然后hideMsg将隐藏MSG和超时将执行后执行hideMsg在1分钟内showMsg。

+0

我也想到了这一点,但它确实重复隐藏消息6次才显示它,这可能会也可能不是问题。 :P –

+0

它只会显示一次,因为超时只会执行一次。检查你的javascript代码,也许你有复制功能的地方这个代码将作为它的书面100% –

+0

啊我看到...我可以发誓那些setTimeout调用之外的显示/隐藏功能:P –

1

使用的setTimeout()函数

$(function() { 

    setInterval(function() { 
     hideMsg() 

    }, 10000); 

    function showMsg(){ 

    } 

    function hideMsg() { 
     $('#header p').css('display', 'none'); 
     setTimeout(function(){ 
       $('#header p').css('display', 'block'); 
     }, 50000); 
    }  
}); 
+0

'setTimeout'需要延迟。 –

+0

你需要添加50000 setTimeout函数 –

+0

在一分钟前已经添加:) – genesis

1
function show(){ 
    // whatever your show code is 

    // hide after 10 seconds 
    setTimeout(function() { 
        // whatever your hide code is 
       }, 10000); 
} 

// invoke show every 60 seconds - show will hide itself after 10 seconds 
var handle = window.setInterval(function() { show(); }, 60000); 
+0

我很欣赏最快的答案,非常感谢 – kdub

1
var messageTimer = setTimeout(showMsg, 50000); 
function showMsg() { 
    $('#header p').show(); 
    clearTimeout(messageTimer); 
    messageTimer = setTimeout(hideMsg, 10000); 
} 
function hideMsg(){ 
    $('#header p').hide(); 
    clearTimeout(messageTimer); 
    messageTimer = setTimeout(showMsg, 50000); 
} 
+0

我很欣赏快速的答案,非常感谢 – kdub

0

安博是什么呢?

$(function() { 
     var count = 0; 
     setInterval(function() { 
      ++count % 6 ? $('#header p').hide() 
         : $('#header p').show(); 
     }, 10000); 
    }); 
0

本想拿出一些原来使用间隔定时器:

$(document).ready(function() { 
    var hideCnt = 0; // 10 second interval cntr 
    setInterval(function() { 
     ++hideCnt; 
     if (hideCnt >= 5) { 
      $('#header p').toggle(); 
     } 
     if (hideCnt >= 6) { 
      hideCnt = 0; 
     } 
    }, 10000); 
}); 

这表示间隔定时器解决方案的工作小提琴:http://jsfiddle.net/jfriend00/KReau/

这里还有更多的传统风味:

$(document).ready(function() { 
    function show() { 
     $('#header p').show(); 
     setTimeout(hide, 50000); // hide after 50 seconds 
    } 
    function hide() { 
     $('#header p').hide(); 
     setTimeout(show, 10000); // show after 10 seconds 
    } 
    show(); 
});