javascript - 倒数计时器不工作

标签 javascript html canvas html5-canvas setinterval

我创建的倒数计时器不起作用。 有趣的是,如果我使用 console.log 打印 count 的值——从 3 开始——会打印类似 -3498 的内容,即使我只打开大约 15 秒,所以设置的间隔一定有问题代码。该值显示(如果计数大于 0),但设置的间隔变化太快。

这是代码。

function countdown(){
  window_width=window.innerWidth-70;
  window_height=window.innerHeight-150;

  canvas = document.getElementById("gameCanvas");
  ctx=canvas.getContext("2d");
  canvas.width  = window_width;
  canvas.height=window_height;

  if(count>0){
    ctx.font = '40pt Calibri';
    ctx.fillStyle = "white";
    ctx.fillText(count, window_width/3, window_height/2);
  }
  else if(count===0){
    ctx.fillText("Go!", window_width/3, window_height/2);
  }
  else{
   return;
  }

  setInterval(function(){count=count-1},1000);
  requestAnimationFrame(countdown);
}

如有任何帮助,我们将不胜感激。

最佳答案

我有点不清楚你想要完成什么,但这里有一个镜头:

window.count = 3;

setTimeout(countdown,1000);

function countdown(){
  window_width=window.innerWidth-70;
  window_height=window.innerHeight-150;

  canvas = document.getElementById("gameCanvas");
  ctx=canvas.getContext("2d");
  canvas.width  = window_width;
  canvas.height=window_height;

  count--;

  if(count>0){
    ctx.font = '40pt Calibri';
    ctx.fillStyle = "white";
    ctx.fillText(count, window_width/3, window_height/2);
    setTimeout(countdown,1000);
  }
  else if(count===0){
    ctx.fillText("Go!", window_width/3, window_height/2);
  }
  else{
   return;
  }

  requestAnimationFrame(countdown); // not sure if this is needed
}

据我所知,您不需要间隔。

关于javascript - 倒数计时器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762993/

相关文章:

javascript - Jquery,在其父限制内打开div

javascript - bootstrap datetimepicker 最大日期

javascript - 查询 : find closest h2 tag

php - 群发邮件对每封邮件发送多次

javascript - ExpressJS 4.2 和 flash 错误(TypeError : Object #<IncomingMessage> has no method 'flash' )

javascript - Angular Directive(指令)忽略非数字输入

javascript - jQuery 单击函数获取数据计数并应用于跨度计数

javascript - 无法修复 "Uncaught TypeError: Cannot read property ' 0' of undefined"

java - 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

javascript - 将 fabric.js 对象与 IText 元素的内部文本的左上角对齐