html5 canvas 倒计时

<!DOCTYPE html>
<html>
<head>
  <title>Canvas</title>
</head>

<body>
  <canvas id="canvas" width="1000" height="1000"></canvas>

  <script type="text/javascript">

    var currentSeconds = 10;
    var countDownSeconds = 10;

    var interval_id = setInterval("drawDoubleCircle()", 1000);

    function drawDoubleCircle() {
      if (currentSeconds <= 0) {
        clearInterval(interval_id);
      }
      var canvasElement = document.getElementById('canvas');
      var context = canvasElement.getContext('2d');
      progress = 360 * currentSeconds / countDownSeconds;
      progress_pi = Math.PI * (progress / 180 - 1 / 2);
      context.beginPath();
      context.moveTo(700, 400);
      context.arc(700, 400, 80, 0, Math.PI * 2, false);
      context.closePath();
      context.fillStyle = '#4BF41B';
      context.fill();

      context.beginPath();
      context.moveTo(700, 400);
      context.arc(700, 400, 80, -Math.PI * 1 / 2, progress_pi, false);
      context.closePath();
      context.fillStyle = 'red'
      context.lineCap = 'round';
      context.fill();

      context.beginPath();
      context.arc(700, 400, 65, 0, Math.PI * 2, false);
      context.closePath();
      context.fillStyle = 'white';
      context.fill();

      context.font = "bold 40pt Arial";
      context.fillStyle = "red";
      context.textAlign = "center";
      context.textBaseline = 'middle';
      context.fillText(currentSeconds, 700, 400);
      // 抗锯齿
      context.globalCompositeOperation = 'source-atop';
      currentSeconds--;
    }
    </script>

</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容