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

相关文章

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

用Python编写倒计时程序:详细教程

目录 引言 环境准备 基本概念 代码实现 步骤一:导入必要的库 步骤二:获取用户输入 步骤三:实现倒计时逻辑 步骤四:整合代码 运行程序 高级功能 扩展功能示例:支持分钟和小时输入 扩展功能示例:图形用户界面 (GUI) 总结 引言 倒计时程序是一个非常常见的小工具,广泛用于各种应用场景中,例如考试时间提醒、烹饪计时器、会议倒计时等。Python 作为一种

影响画布微信小程序canvas及skyline和webview用户界面布局的关键流程

影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 目录 影响微信小程序画布canvas及skyline和webview用户界面布局的关键流程 一、微信小程序canvas开发流程 1.1、官方指南 1.2、客制化开发 第一步:在 WXML 中添加 canvas 组件 第二步:获取 Canvas 对象和渲染上下文 第三步 画布#ID选择器执行回调——

基于51单片机的倒计时装置proteus仿真

地址: https://pan.baidu.com/s/1p9xDKXaulyx-PyP6dURp-g 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectronics)公司生产的一系列单片机之一。它基于8051内核,并具有许多与其兼容的特性。 主要特点如下:

Android canvas save restore saveLayer的异同点

一、基础操作 drawText、drawRect、drawColor等 对于这些基础操作,相信每一个安卓开发者都能说上个一二点出来,这些就不多做介绍,api 工程师必备技能之一。 在进阶之前,先回答这个问题:    问:canvas既然大家都理解为画布,那如果先在画布上绘制了某些内容,然后再canvas.rotate旋转了画布,为什么这些已经绘制在画布上的内容不会跟随着旋转?    答:由此可

jquery 倒计时代码

jQuery代码如下: <span style="font-size:18px;"><!-- 调用jQuery库 --><script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><script type="text/javascript"> //定义方法 function GetRTime(){

自定义View-Canvas

转载自:https://www.jianshu.com/p/f69873371763 Android Canvas 方法总结 简介 在自定义 View的时候,我们经常需要绘制一些自己想要的效果。 这里就需要使用Canvas对象。 下面将Canvas对象常用方法做个笔记,方便记忆。 对Canvas进行操作 对Canvas的一系列操作,是指对Canvas进行旋转、平移、缩放等操作。 这些操作可以

canvas-实现放大镜效果

canvas-实现放大镜效果 目录 文章目录 前言推荐阅读代码展示结果展示 前言 本文为canvas实现放大镜逻辑简单,适合作为基础项目练手 推荐阅读 《H5 canvas核心技术》 代码展示 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Comp

canvas-原生js实现时钟绘图效果

canvas-原生js实现时钟绘图效果 目录 文章目录 前言代码效果查看 前言 本文为canvas实现时钟效果可直接复制使用 代码 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta n

js-基于AudioContext在canvas上显示声音波形

js-基于AudioContext在canvas上显示声音波形 目录 文章目录 前言效果展示代码展示`index.html``Aud.js` 前言 从ES7后开始启用AudioContex常用API是:createScriptProcessor, onaudioprocess, getChannelData注意:onaudioprocess已经废弃,开始改用Analyse