jQuery如何制作弹出窗口在计时器上显示/消失?

时间:2015-06-23 14:26:39

标签: javascript jquery

当我的网站加载时,弹出窗口出现 - 我需要在特定时间后自动关闭它。

$(document).ready(function () {

    //select the POPUP FRAME and show it

    $("#popup").hide().fadeIn(1000);

    //close the POPUP if the button with id="close" is clicked
    $("#close").on("click", function (e) {
        e.preventDefault();
        $("#popup").fadeOut(1000);
    });

}); 

已经有一个按钮,但我需要删除它。

2 个答案:

答案 0 :(得分:3)

您可以使用delay()功能:

$(document).ready(function() {
  $("#popup").hide().fadeIn(1000).delay(5000).fadeOut(1000);

  $("#close").on("click", function(e) {
    e.preventDefault();
    $("#popup").fadeOut(1000);
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="popup">popup</div>

请注意文档中给出的注释:

  

.delay()方法最适合在排队的jQuery之间延迟   效果。因为它是有限的 - 例如,它没有提供一种方法   取消延迟-.delay()不是JavaScript本机的替代品   setTimeout函数,可能更适合某些用途   例。

答案 1 :(得分:1)

Javascript有选项 setTimeout .setTimeout是一个本机JavaScript函数(虽然它可以用于jQuery这样的库,我们稍后会看到),它调用一个函数或执行一个函数指定延迟后的代码段(以毫秒为单位)。

setTimeout(function() {
      $("#popup").fadeOut(1000);
 }, 1000);

或在jquery中使用.delay()。设置计时器以延迟队列中后续项的执行。

$("#popup").delay(1000).fadeOut(1000);