jQuery countdown timer

后端 未结 3 1275
难免孤独
难免孤独 2020-12-02 19:34

Currently i have this code

setTimeout(function() { $(\'#hideMsg\').fadeOut(\'fast\'); }, 2000);

is it possible for me to put countdown time

相关标签:
3条回答
  • 2020-12-02 19:52

    Note:

    I didn't realize how similar this was to Reigel's answer until I read his answer. Basically, the only difference is that I use .delay() to hide the div instead of the interval. Different options...


    If you put the initial number in a <span> this will count down to zero from whatever that number is:

    $(function() {
    
                   // Number of seconds counter starts at is what's in the span
        var timer, counter = $("#hideMsg span").text();
    
          // Delay the fadeout counter seconds
        $('#hideMsg').delay(counter * 1000).fadeOut('fast');
    
          // Update countdown number every second... and count down
        timer = setInterval(function() {
    
            $("#hideMsg span").html(--counter);
            if (counter == 0) { clearInterval(timer)};
    
        }, 1000);
    
    });​
    

    jsFiddle example


    This makes use of jQuery's native .delay(), and it uses a setInterval() that stops when it gets to zero.

    0 讨论(0)
  • 2020-12-02 19:52

    Do another set timeout after a second and set the .html() of the div like this:

    setTimeout(function() { $('#hideMsg').html('The entry you posted not valid. <br /> This Box will Close In 1 Second'); }, 1000);
    

    Put them in a function and run the function onload like this:

    <body onload="function_name()">
    

    hope this helps.

    0 讨论(0)
  • 2020-12-02 20:04

    use setInterval instead of setTimeout, then with the combination of clearInterval

    var sec = 2
    var timer = setInterval(function() { 
       $('#hideMsg span').text(sec--);
       if (sec == -1) {
          $('#hideMsg').fadeOut('fast');
          clearInterval(timer);
       } 
    }, 1000);
    

    html

    <div id="hideMsg">
    The entry you posted not valid.
    This Box will Close In <span>2</span> Seconds
    </div>
    

    crazy demo


    Making it better.

    var sec = $('#hideMsg span').text() || 0;
    var timer = setInterval(function() { 
       $('#hideMsg span').text(--sec);
       if (sec == 0) {
          $('#hideMsg').fadeOut('fast');
          clearInterval(timer);
       } 
    }, 1000);​
    

    so that the time will depends on what is inside the <span>. For example, <span>2</span> is 2 seconds, <span>5</span> is 5 seconds, and <span>60</span> is 1 minute.

    another crazy demo

    0 讨论(0)
提交回复
热议问题