javascript/jquery 中的简单 3-2-1 倒计时

发布于 2024-10-31 18:17:48 字数 1042 浏览 1 评论 0原文

我正在尝试创建一个简单的 3-2-1 计数器。我想显示 3、2 和 1,并在倒计时结束时运行一个函数。我尝试了一些无济于事的事情:

$("#count_num").delay(1000).queue(function() {
        $(this).html("2")
        });
$("#count_num").delay(1000).queue(function() {
        $(this).html("1")
        });

并且:

$("#count_num").delay(1000).queue(function() {
        $(this).html("2").delay(1000).queue(function() {
        $(this).html("1")
        });
        });

在这些情况下,它确实达到了 2,但从未达到 1。我还安装了 doTimeout 插件(http://benalman.com/projects/jquery-dotimeout-plugin/ )并尝试了这个:

$.doTimeout( 1000, function(){
        $("#count_num").html("2");
        });
$.doTimeout( 1000, function(){
        $("#count_num").html("1");
        });

并且:

var count=3;
        $.doTimeout( 1000, function(){
        if ( count==1 ) {
        // do something finally
        return false;
        }
        $("#count_num").html(count);
        count--;
        return true;
        });

我做错了什么?谢谢。

i'm trying to create a simple 3-2-1 counter. i would like to display the 3, 2, and 1, as well as run a function at the end of the countdown. i've tried a couple things to no avail:

$("#count_num").delay(1000).queue(function() {
        $(this).html("2")
        });
$("#count_num").delay(1000).queue(function() {
        $(this).html("1")
        });

and:

$("#count_num").delay(1000).queue(function() {
        $(this).html("2").delay(1000).queue(function() {
        $(this).html("1")
        });
        });

in these cases, it does get to 2 but never to 1. i also installed the doTimeout plugin (http://benalman.com/projects/jquery-dotimeout-plugin/) and tried this:

$.doTimeout( 1000, function(){
        $("#count_num").html("2");
        });
$.doTimeout( 1000, function(){
        $("#count_num").html("1");
        });

and:

var count=3;
        $.doTimeout( 1000, function(){
        if ( count==1 ) {
        // do something finally
        return false;
        }
        $("#count_num").html(count);
        count--;
        return true;
        });

what am i doing wrong? thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

尸血腥色 2024-11-07 18:17:49
var timer = setInterval(function(){
$("#count_num").html(function(i,html){
   if(parseInt(html)>0)
   {
   return parseInt(html)-1;
   }
   else
   {
   clearTimeout(timer);
   return "KO!!";
   }
 });

},1000);

这是一个*示例*

var timer = setInterval(function(){
$("#count_num").html(function(i,html){
   if(parseInt(html)>0)
   {
   return parseInt(html)-1;
   }
   else
   {
   clearTimeout(timer);
   return "KO!!";
   }
 });

},1000);

Here is an *example *

多情出卖 2024-11-07 18:17:49

您不需要为此使用插件。使用 JavaScript,您可以执行以下操作:

var count = 4;
function anim() {
    if (count > 0) {
        console.log(count);
        count--;
        setTimeout(anim, 700);
    }
    else {
        alert('end of counting')
    }
}
anim();

这将从 4 开始倒计时,然后在计数达到 0 时执行函数。

请在 http:// 查看工作示例jsfiddle.net/GSWRW/

You don't need a plugin for this. With JavaScript you can do:

var count = 4;
function anim() {
    if (count > 0) {
        console.log(count);
        count--;
        setTimeout(anim, 700);
    }
    else {
        alert('end of counting')
    }
}
anim();

This will countdown from 4 then execute a function when count reaches 0.

Check working example at http://jsfiddle.net/GSWRW/

七分※倦醒 2024-11-07 18:17:49

我制作了一个小 jquery 插件,它完全可以满足您的需求:

http://plugins.jquery.com/项目/countTo

https://github.com/bartrail/jQuery.countTo

I've made a little jquery plugin that does exactly what you desire:

http://plugins.jquery.com/project/countTo

https://github.com/bartrail/jQuery.countTo

云淡风轻 2024-11-07 18:17:48
function endCountdown() {
  // logic to finish the countdown here
}

function handleTimer() {
  if(count === 0) {
    clearInterval(timer);
    endCountdown();
  } else {
    $('#count_num').html(count);
    count--;
  }
}

var count = 3;
var timer = setInterval(function() { handleTimer(count); }, 1000);

不那么频繁地使用 jQuery,但应该可以正常工作。

function endCountdown() {
  // logic to finish the countdown here
}

function handleTimer() {
  if(count === 0) {
    clearInterval(timer);
    endCountdown();
  } else {
    $('#count_num').html(count);
    count--;
  }
}

var count = 3;
var timer = setInterval(function() { handleTimer(count); }, 1000);

Doesn't use jQuery as much, but should work fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文