如何在3秒后关闭元素

时间:2017-03-19 01:30:37

标签: jquery hide settimeout

欢迎任何观看这篇文章的人!

我的问题如下所述。

我有一个消息弹出窗口,在我想要显示消息的php事件下弹出。我遇到的唯一问题是在3秒后关闭此消息弹出窗口。

任何帮助都会很棒!提前谢谢!

我也在StackOverflow搜索谷歌和论坛,我最接近我的问题就在这里:Closing popup window after 3 seconds但是即使摆弄这些代码我也无法按照我想要的方式工作他们来。

我的代码:

   <script type="text/javascript">
   // jQuery
   $(document).ready(function() {
     var popup = document.getElementById("msgpop");
     popup.classList.toggle("show");
   });
   </script>

这似乎不起作用。

setTimeout(window.close(), function(), 3000);

3 个答案:

答案 0 :(得分:0)

如果切换类"show"是显示弹出窗口的方法,那么可能会将同一个类切换为隐藏它的方式。

$(document).ready(function() {
  var popup = document.getElementById("msgpop");
  popup.classList.toggle("show");
  setTimeout(function() {
    popup.classList.toggle("show");
  }, 3000);
});

关于您的代码,请:

setTimeout(window.close(), function(), 3000);

......由于一些原因不起作用。首先,function()是语法错误。其次,你不想关闭window,你只想隐藏/关闭弹出元素,所以你不想要window.close()。第三,即使您确实想要window.close(),您的代码也会立即调用该函数 并将其返回值传递给setTimeout()。您需要将函数传递给setTimeout(),如下所示:

setTimeout(functionName, 3000) // note no parentheses after functionName

...或者在超时后运行一行代码,你可以将它包装在一个匿名函数中,如上所示。

答案 1 :(得分:0)

这是我需要添加的CSS。

.msgpop .hide {
visibility: invisible;
-webkit-animation: fadeOut 1s;
animation: fadeOut 1s
}

答案 2 :(得分:0)

setTimeout只有2个参数:D

我确定你真的想:

setTimeout(function() { window.close(); }, 3000);