一个简易时钟效果js实现代码

前端之家收集整理的这篇文章主要介绍了一个简易时钟效果js实现代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例为大家分享了js时钟特效 的具体代码,供大家参考,具体内容如下

js代码

function zhong() {
clock.save();
//开始画外层圆
clock.translate(200,200);
clock.strokeStyle = 'black';
clock.lineWidth = 3;
clock.beginPath();
clock.arc(0,195,2 * Math.PI);
clock.stroke();

//时钟上的数字
var shuzi = [3,4,5,6,7,8,9,10,11,12,1,2];
clock.font = "30px Arial";
clock.textAlign = "center";
clock.textBaseline = "middle";
shuzi.forEach(function(number,i) {
var rad = 2 Math.PI / 12 i;
var x = Math.cos(rad) 180;
var y = Math.sin(rad)
180;
clock.fillText(number,x,y);
});

// 小圆点

for(j = 0; j < 60; j++) {
var h = 2 Math.PI / 60 j;
var m = Math.cos(h) 180;
var n = Math.sin(h)
180;
clock.fillStyle = 'black';
clock.beginPath();
if(j % 5 === 0) {
continue;
}
clock.arc(m,n,3,2 Math.PI);
clock.fill();
}
}
function drawHour(hour,min) {
clock.save();
var rad = 2
Math.PI / 12 hour;
var red = 2
Math.PI/12/60*min;
clock.rotate(rad+red);
clock.lineWidth = 10;
clock.lineCap = "round";
clock.beginPath();
clock.moveTo(0,5);
clock.lineTo(0,-100);
clock.stroke();
clock.restore();
}

function drawmin(min) {
clock.save();
var rad = 2 Math.PI / 60 min;
clock.rotate(rad);
clock.lineWidth = 5;
clock.lineCap = "round";
clock.beginPath();
clock.moveTo(0,10);
clock.lineTo(0,-150);
clock.stroke();
clock.restore();
}

function drawsec(sec) {
clock.save();
var rad = 2 Math.PI / 60 sec;
clock.rotate(rad);
clock.lineWidth = 2;
clock.lineCap = "round";
clock.strokeStyle = "red";
clock.beginPath();
clock.moveTo(0,-180);
clock.stroke();
clock.restore();
}

function dian() {
clock.fillStyle = "white";
clock.beginPath();
clock.arc(0,2,2 * Math.PI);
clock.fill();
}

function xuanzhuan() {
clock.clearRect(0,400,400);
zhong();
var now = new Date();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();
drawHour(hour,min);
drawmin(min);
drawsec(sec);
dian();
clock.restore();
}
xuanzhuan();

setInterval(xuanzhuan,1000);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的JavaScript相关文章