在页面加载时显示弹出窗口,然后以固定的时间间隔显示和隐藏它

时间:2016-10-29 15:32:26

标签: javascript jquery

我需要在首次加载页面时显示免责声明div,然后在此之后定期显示和隐藏它。每三分钟显示一次是一个很好的时间间隔。

我目前有这段代码

<script>
function popup(){

setTimeout(function(){
document.getElementById("disclaimer").style.display = "block";
},0);
}
function hidePopup(){
document.getElementById("disclaimer").style.display = "none";
}
</script>

然后我需要弹出窗口在大约3分钟的时间过后再次显示。

3 个答案:

答案 0 :(得分:3)

试试这个

&#13;
&#13;
//start showing popup
popup();

function popup() {

  document.getElementById("disclaimer").style.display = "block";

  console.log("wait 3 seconds then hide");

  setTimeout(hidePopup, 3000);

}

function hidePopup() {

  document.getElementById("disclaimer").style.display = "none";

  console.log("wait 3 minutes then show popup again");

  setTimeout(popup, 3 * 60 * 1000);

}
&#13;
<div id='disclaimer'>Disclaimer Div</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用setInterval以指定的毫秒间隔异步运行代码。然后使用setTimeout延迟函数,使pop显示一段时间。

//function runs every 3 minutes
setInterval(function(){ 

   //function waits 1 second
   setTimeout(function(){
      popup();
   }, 1000);

   hidePopup();
}, 180000);

此函数将每180000毫秒(3分钟)运行一次,并显示1000毫秒(1秒)的弹出窗口。

答案 2 :(得分:0)

这里我将如何仅使用一个函数

摘录1(如果需要,将时间间隔更改为秒数)

var dis_div = document.getElementById("disclaimer");
function init_disclaimer() {
  if (dis_div.style.display == "block"){
    dis_div.style.display = "none"
    }
  else {
    dis_div.style.display = "block"
  }
}
inter=setInterval(init_disclaimer,500)
<div id="disclaimer">Disclaimer
</div>