繁体   English   中英

如何设置弹出窗口的超时时间?

[英]How to set a timeout for a popup?

我创建了一个弹出窗口,当单击一个按钮时会出现,但是要使其消失,必须再次单击。 有没有办法设置计时器并使它消失?

这是代码:

 // When the user clicks on div, open the popup function myFunction() { var popup = document.getElementById("myPopup"); popup.classList.toggle("show"); } 
 .popuptext { display: none; } .popuptext.show { display: block; } 
 <div class="popup" onclick="myFunction()">Click me to toggle the popup! <span class="popuptext" id="myPopup">A Simple Popup!</span> </div> 

我建议您阅读w3schoolsmozilla dev 上的 setTimeout()函数,这两个都是编程初学者的两个不错的站点。

您的问题可以如以下代码片段所示来解决:

function myFunction() {
  var popup = document.getElementById("myPopup");
  popup.classList.toggle("show");

  if(popup.classList.contains("show")) // Check if the popup is shown
     setTimeout(() => popup.classList.remove("show"), 10000) // If yes hide it after 10000 milliseconds
}

我将使用setTimeout:

 function myFunction(el) { var popup = document.getElementById("myPopup"); popup.classList.toggle("show"); setTimeout(() => { popup.classList.remove("show"); }, 10000) } 
 div { display: none; } .show { display: block !important; } 
 <button onclick="myFunction()">Show div below</button> <br/> <div id="myPopup">No longer hidden</div> 

 <script> // When the user clicks on div, open the popup function myFunction() { var popup = document.getElementById("myPopup"); popup.classList.toggle("show"); //Try this, setTimeout takes a callback function to be executed after an amount of time, in this case 3000 milliseconds is 3 seconds setTimeout(function(){ popup.classList.toggle("show"); },3000) } </script> 

这应该工作

function myFunction() {
  var popup = document.getElementById("myPopup");
        document.getElementById("myPopup").style.display= "block"

    setTimeout(function(){ 
    document.getElementById("myPopup").style.display= "none"
   }, 3000);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM