Canvas倒计时

2024-06-17 14:52
文章标签 canvas 倒计时

本文主要是介绍Canvas倒计时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Canvas倒计时

前言

Canvas绘制一个倒计时组件,显示距离新年还有多长时间,精确到秒,该倒计时需要实时更新

基础知识点

JS

Date()

创建一个新Date对象的唯一方法是通过new 操作符,例如:let now = new Date(); 若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象
如果没有输入任何参数,则 Date 的构造器会依据系统设置的当前时间来创建一个 Date 对象。

setInterval()

重复调用一个函数或执行一个代码片段,在每次调用之间具有固定的时间间隔。
它返回一个 interval ID,该 ID 唯一地标识时间间隔,因此你可以稍后通过调用 clearInterval() 来移除定时器。

Canvas API

clearRect()
/**
x:
矩形起点的 x 轴坐标。
y:
矩形起点的 y 轴坐标。
width:
矩形的宽度。
height:
矩形的高度。
*/
ctx.clearRect(x, y, width, height);

clearRect() 方法在一个矩形区域内设置所有像素都是透明的 (rgba(0,0,0,0))。这个矩形范围的左上角在 (x, y),宽度和高度分别由 widthheight确定

strokeText()
/**
text:
使用当前 font,textAlign,textBaseline和direction 的值对文本进行渲染。
x:
文本起始点的 x 轴坐标。
y:
文本起始点的 y 轴坐标。
maxWidth 可选
需要绘制的最大宽度。如果指定了值,并且经过计算字符串的宽度比最大宽度还要宽,字体为了适应会使用一个水平缩小的字体(如果通过水平缩放当前的字体,可以进行有效的或者合理可读的处理)或者小号的字体。
*/
ctx.strokeText(text, x, y [, maxWidth]);

在给定的 (x, y) 位置绘制文本的方法。如果提供了表示最大值的第四个参数,文本将会缩放适应宽度。

代码

// HTML
<canvas id="canvas" width="400" height="300"></canvas>
// JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let days = 100;
let hours = 12;
let minutes = 35;
let seconds = 50;
ctx.font = "bold 25px serif";
let interval = setInterval(() => {// 每次都要清空canvas,否则字符串会重叠ctx.clearRect(0,0,400,300);const now = Date.parse(new Date());const end = Date.parse(new Date("2025-01-01 00:00:00"));const gap = end - now;if (gap > 0) {days = Math.floor(gap/(1000*60*60*24));hours = Math.floor(gap/(1000*60*60)%24);minutes = Math.floor(gap/(1000*60)%60);seconds = Math.floor(gap/1000%60);ctx.strokeText(`${days}${hours}小时${minutes}分钟${seconds}秒钟`, 50, 100);} else {clearInterval(interval);}
}, 1000);

在线尝试 Codepen

效果

在这里插入图片描述

这篇关于Canvas倒计时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069754

相关文章

以canvas方式绘制粒子背景效果,感觉还可以

这个是看到项目中别人写好的,感觉这种写法效果还可以,就存留记录下 就是这种的背景效果。如果想改背景颜色可以通过canvas.js文件中的fillStyle值改。 附上demo下载地址。 https://download.csdn.net/download/u012138137/11249872

CesiumJS【Basic】- #008 通过canvas绘制billboard

文章目录 通过canvas绘制billboard1 目标2 实现 通过canvas绘制billboard 1 目标 通过canvas绘制billboard 2 实现 /** @Author: alan.lau* @Date: 2024-06-16 11:15:48* @LastEditTime: 2024-06-16 11:43:02* @LastEditors: al

Android自定义系列——4.Canvas操作

1.画布操作 为什么要有画布操作? 画布操作可以帮助我们用更加容易理解的方式制作图形。 ⑴位移(translate) translate是坐标系的移动,可以为图形绘制选择一个合适的坐标系。 请注意,位移是基于当前位置移动,而不是每次基于屏幕左上角的(0,0)点移动,如下: // 省略了创建画笔的代码// 在坐标原点绘制一个黑色圆形mPaint.setColor(Color.BLACK);ca

Canvas绘制图片和区域

如何使用Canvas在图片上绘制区域? 一. 首先,我们需要初始化三个canvas画布(初始化Canvas)   initCanvas() {// 初始化canvas画布let canvasWrap = document.getElementsByClassName("canvas-wrap");this.wrapWidth = canvasWrap[0].clientWidth;thi

android倒计时封装(活动进入后台,倒计时依然能正常计时)

public class TimeUtils { /倒计时时长 单位:秒/ public static int COUNT = 20*60; /当前做/ private static int CURR_COUNT = 0; /预计结束的时间/ private static long TIME_END = 0; /计时器/ private static Timer countdown

一个canvas demo, 用到了三个canvas标签

<!DOCTYPE html> <html> <head>     <meta charset="utf-8"> <title>插入图片</title> <style type="text/css">      #wrap{        border:2px dashed red;        background-color:green;      }

canvas_font,基础

<canvas width="800" height="600" id="can" οnclick="img_click(this)"></canvas>    //800px ,加不加单位都是可以的 一个页面 <!DOCTYPE html> <html> <head>     <meta charset="utf-8"> <title>canvas_font</title> <styl

【Mac】DMG Canvas for mac(DMG镜像制作工具)软件介绍

软件介绍 DMG Canvas 是一款专门用于创建 macOS 磁盘映像文件(DMG)的软件。它的主要功能是让用户可以轻松地设计、定制和生成 macOS 上的安装器和磁盘映像文件,以下是它的一些主要特点和功能。 主要特点和功能 1. 用户界面设计 DMG Canvas 提供直观的用户界面,允许用户通过拖放方式设计磁盘映像的布局。你可以轻松地添加背景图像、图标和文本,以创建个性化的安装器或者

JS 倒计时使用秒作倒计时实现方案

let end = new Date('2021-12-12 12:00:00') //结束时间let cur = new Date() //当前时间var difftime = parseInt((end - cur)/1000); //转化为秒if(difftime > 0){ this.countDown(difftime)}formatBit (val) {val = +

vue canvas学习

说明 在vue里试用一下canvas,记录一下 代码 <template><div><canvas ref="canvas1" height="500" width="500"></canvas><button @click="draw">画图</button></div></template><script>export default {data() {return {};},met