html5小栗子---canvas時鐘
阿新 • • 發佈:2019-02-19
var cvs=document.getElementById('clock');
var ctx=cvs.getContext('2d');
var oImg=document.getElementById('pic');
function clock() {
ctx.clearRect(0,0,400,400);
var img=document.getElementById('pic');
ctx.drawImage(img,100,100,200,200);//引入圖片做背景
//畫圓
ctx.beginPath();
ctx.strokeStyle='#60D9F8' ;
ctx.arc(200,200,150,0,360*Math.PI/180,false);
ctx.lineWidth=4;
ctx.stroke();
ctx.clip();
ctx.drawImage(oImg,50,50,300,300);
ctx.closePath();
//畫分刻度
for(var i=0;i<60;i++){
ctx.save();
ctx.beginPath();
ctx.translate(200 ,200);//重新對映畫布(200,200)的位置
ctx.rotate(i*6*Math.PI/180);//旋轉當前繪圖
ctx.strokeStyle='#FF99CC';
ctx.lineWidth=3;
ctx.moveTo(0,-140);//在半徑的線上,把路徑移動到畫布中的指定點,不建立線條。
ctx.lineTo(0,-150);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
//畫時刻度
for(var i=0;i<12;i++){
ctx.save();
ctx.beginPath();
ctx.translate(200,200);//重新對映畫布(200,200)的位置
ctx.rotate(i*30*Math.PI/180);//旋轉當前繪圖
ctx.strokeStyle='#6699CC';
ctx.lineWidth=5;
ctx.moveTo(0,-135);//在半徑的線上,把路徑移動到畫布中的指定點,不建立線條。
ctx.lineTo(0,-150);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
//獲取時間
var now=new Date();
var second=now.getSeconds();
var minute=now.getMinutes()+second/60;
var hour=now.getHours()+minute/60;
//寫時間
var h2=now.getHours();
var m2=now.getMinutes();
var str1=h2>9?h2:('0'+h2);
var str2=m2>9?m2:('0'+m2);
ctx.beginPath();
ctx.fillStyle='#000';
ctx.font='20px 微軟雅黑';
ctx.fillText(str1+':'+str2,175,320);
ctx.closePath();
//畫時針
ctx.beginPath();
ctx.strokeStyle='#CCFFFF';
ctx.moveTo(200,200);
ctx.arc(200,200,80,(hour*30-90)*Math.PI/180,(hour*30-90)*Math.PI/180,false);
ctx.stroke();
//畫分針
ctx.beginPath();
ctx.moveTo(200,200);
ctx.arc(200,200,100,(minute*6-90)*Math.PI/180,(minute*6-90)*Math.PI/180,false);
ctx.stroke();
//畫秒針
ctx.beginPath();
ctx.moveTo(200,200);
ctx.arc(200,200,120,(second*6-90)*Math.PI/180,(second*6-90)*Math.PI/180,false);
ctx.stroke();
}
clock();
setInterval(clock,1000);