1. 程式人生 > >html5小栗子---canvas時鐘

html5小栗子---canvas時鐘

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);