H5 implements scalable clock animation
This time I will bring you H5 to implement scalable clock animation. What are the precautions for H5 to implement scalable clock animation? The following is a practical case, let’s take a look.
Without further ado, I will post the code directly for you. The specific code is as follows:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas_time</title> <style type="text/css"> p { text-align: center; margin-top: 250px; } #clock { border: 1px solid #cccccc; } </style> </head> <body> <p> <canvas id="clock" height="600px" width="600px"></canvas> </p> <script type="text/JavaScript" > var dom = document.getElementById('clock'); var ctx = dom.getContext('2d'); var width = ctx.canvas.width; var height = ctx.canvas.height; var r = width / 2; var rem = width/200; function drawBackground() { ctx.save(); //存储当前环境变量; ctx.translate(r, r); //重置坐标到r,r ctx.beginPath(); // 起始一条路径 ctx.lineWidth = 10*rem; //设置线宽10; ctx.arc(0, 0, r - ctx.lineWidth /2, 0, 2 * Math.PI, false); ctx.stroke(); var hourNumbers = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2]; //定义数组 ctx.font = 18*rem+"px Arial"; ctx.textAlign = "center"; ctx.textBaseline = "middle"; hourNumbers.forEach(function(number, i) { var rad = 2 * Math.PI / 12 * i; var x = Math.cos(rad) * (r - 30*rem); var y = Math.sin(rad) * (r - 30*rem); ctx.fillText(number, x, y); }); for (var i = 0; i < 60; i++) { var rad = 2 * Math.PI / 60 * i; var x = Math.cos(rad) * (r - 18*rem); var y = Math.sin(rad) * (r - 18*rem); ctx.beginPath(); if (i % 5 === 0) { ctx.arc(x, y, 2*rem, 0, 2 * Math.PI, false); ctx.fillStyle = "#000"; } else { ctx.arc(x, y, 2*rem, 0, 2 * Math.PI, false); ctx.fillStyle = "#ccc"; } ctx.fill(); } } function drawHour(hour, minute) { ctx.save(); ctx.beginPath(); var rad = 2 * Math.PI / 12 * hour; var mrad = 2 * Math.PI / 12 / 60 * minute; ctx.rotate(rad + mrad); ctx.lineWidth = 6*rem; ctx.lineCap = "round"; ctx.moveTo(0, 10*rem); ctx.lineTo(0, -r / 2); ctx.stroke(); ctx.restore(); } function drawMinute(minute) { ctx.save(); ctx.beginPath(); var rad = 2 * Math.PI / 60 * minute; ctx.rotate(rad); ctx.lineWidth = 3*rem; ctx.lineCap = "round"; ctx.moveTo(0, 10*rem); ctx.lineTo(0, -r + 30*rem); ctx.stroke(); ctx.restore(); } function drawSecond(second) { ctx.save(); ctx.beginPath(); ctx.fillStyle = 'red'; var rad = 2 * Math.PI / 60 * second; ctx.rotate(rad); ctx.moveTo(-2*rem, 20*rem); ctx.lineTo(2*rem, 20*rem); ctx.lineTo(1, -r + 16*rem); ctx.lineTo(-1, -r + 16*rem); ctx.fill(); ctx.restore(); } function drawDot() { ctx.beginPath(); ctx.fillStyle = '#fff'; ctx.arc(0, 0, 3*rem, 0, 2 * Math.PI, false); ctx.fill(); } function draw01() { ctx.clearRect(0, 0, width, height); var now = new Date(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); drawBackground(); drawHour(hour, minute); drawMinute(minute); drawSecond(second); drawDot(); ctx.restore(); } draw01(); setInterval(draw01, 1000); </script> </body> </html>
I believe you will read the case in this article You have mastered the method. For more exciting information, please pay attention to other related articles on the php Chinese website! Recommended reading:
How to operate WebSQL database with H5
The above is the detailed content of H5 implements scalable clock animation. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.
