js绘制圆形时钟的效果
帆布的时钟
div {
文本对齐:中心;
边距:250px;
}
#钟{
边境:1px solid # CCC;
}
js
VaR DOM = document.getelementbyid(开始的);
VaR CXT = dom.getcontext(2D);
VaR的宽度= cxt.canvas.width;
VaR高度= cxt.canvas.height;
var =宽度 2;
功能drawbackground(){
Cxt.save();
cxt.translate(R,R);
Cxt.beginPath();
CXT线宽= 10;
Cxt.arc(0,0,r-5,0,2 * Math.PI,假);
Cxt.stroke();
CXT。字体=18px宋体;
CXT .TextAlign = 'center。
CXT textbaseline =。
无功hournums = { 3,4,5,6,7,8,9,10,11,12,1,2 };
hournums.foreach(功能(数量、我){
var = 2 *数学。12;
Var x=Math.cos (RAD) * (r-30);
var y = Math.sin(RAD)*(R-30);
Cxt.fillText(数,x,y);
});
对于(var i = 0;i < 60;i + +){
var = 2 *数学。60;
var x = math.cos(RAD)*(R-18);
var y = Math.sin(RAD)*(R-18);
Cxt.beginPath();
如果(i = 5 = 0){
CXT。fillStyle =# 000
Cxt.arc(X,Y,2,0,2 * Math.PI,假);
}
别的{
CXT。fillStyle =# CCC
Cxt.arc(X,Y,2,0,2 * Math.PI,假);
}
Cxt.fill();
}
}
功能drawhour(小时、分钟){
Cxt.save();
Cxt.beginPath();
var = 2 *数学。12小时;
VaR mrad = 2 *数学。π/ 12 / 60分钟
cxt.rotate(RAD +拉德);
CXT线宽= 6;
CXT的线帽=跟着。
Cxt.moveTo(0);
Cxt.lineTo(0,R / 2);
Cxt.stroke();
Cxt.restore();
}
功能drawminute(分钟){
Cxt.save();
Cxt.beginPath();
VaR的RAD = 2 *数学。PI / 60分钟;
cxt.rotate(RAD);
CXT线宽= 3;
CXT的线帽=跟着。
Cxt.moveTo(0);
Cxt.lineTo(0,R + 30);
Cxt.stroke();
Cxt.restore();
}
功能drawsecond(二){
Cxt.save();
Cxt.beginPath();
CXT。fillStyle =# c14543
2=60;
cxt.rotate(RAD);
Cxt.moveTo(- 20);
Cxt.lineTo(20);
Cxt.lineTo(1,R + 18);
Cxt.lineTo(1,R + 18);
Cxt.fill();
Cxt.restore();
}
功能drawdot(){
Cxt.beginPath();
CXT。fillStyle =# FFF
Cxt.arc(0,0,3,0,2 * Math.PI,假);
Cxt.fill();
}
函数绘图(){
cxt.clearrect(0,0,宽度,高度);
var现在=新日期();
无功功率= now.gethours();
VaR分钟= now.getminutes();
无功二= now.getseconds();
drawbackground();
DrawHour(小时、分钟);
DrawMinute(分钟);
drawsecond(二);
DrawDot();
Cxt.restore();
}
拉();
setInterval(画,1000);
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。