国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

javascript+HTML5 canvas繪制時鐘功能示例

2024-05-06 16:50:56
字體:
來源:轉載
供稿:網友

本文實例講述了javascript+HTML5 canvas繪制時鐘功能。分享給大家供大家參考,具體如下:

效果如下:

javascript,HTML5,canvas,時鐘

代碼:

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>m.survivalescaperooms.com canvas繪制時鐘</title> <style>  div{text-align:center;margin-top:250px;} </style></head><body><div> <canvas id="clock" width="300px" height="300px"></canvas></div><script> 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);//重新定義圓點到中心  ctx.beginPath();  ctx.lineWidth=10*rem;  ctx.arc(0,0,r-5*rem,0,Math.PI*2,false);//圓點坐標,起始角0,結束角2π,順時針  ctx.stroke();  var hourNum=[3,4,5,6,7,8,9,10,11,12,1,2];//數組存小時數  ctx.font="18px Arial";  ctx.textAlign="center";  ctx.textBaseline="middle";  hourNum.forEach(function (num,i) {   var rad=2*Math.PI/12*i;//弧度   var x=(r-30*rem)*Math.cos(rad);   var y=(r-30*rem)*Math.sin(rad);   ctx.fillText(num,x,y);  });  for(var i=0;i<60;i++){//畫圓點   var rad=2*Math.PI/60*i;   var x=(r-18*rem)*Math.cos(rad);   var y=(r-18*rem)*Math.sin(rad);   ctx.beginPath();   if(i%5==0){    ctx.fillStyle="#000";    ctx.arc(x,y,2,0,Math.PI*2,false);   }   else{    ctx.fillStyle="#ccc";    ctx.arc(x,y,2,0,Math.PI*2,false);   }   ctx.fill();  }  ctx.closePath(); } 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.moveTo(0,10*rem);  ctx.lineTo(0,-r/2);  ctx.lineCap="round";  ctx.stroke();  ctx.restore(); } function drawMinute(minute,second){//分針  ctx.save();  ctx.beginPath();  var rad=2*Math.PI/60*minute;  var srad=2*Math.PI/60/60*second;  ctx.rotate(rad+srad);  ctx.lineWidth=3*rem;  ctx.moveTo(0,10*rem);  ctx.lineTo(0,-r+30*rem);  ctx.lineCap="round";  ctx.stroke();  ctx.restore(); } function drawSecond(second){//秒針  ctx.save();  ctx.beginPath();  ctx.fillStyle="#c14543";  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*rem,-r+18*rem);  ctx.lineTo(-1*rem,-r+18*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 draw(){  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,second);//分鐘  drawSecond(second);//秒鐘  drawDot();//中心圓點  ctx.restore(); } setInterval(draw,1000);</script></body></html>

其中的rem值是為了使canvas畫布大小變化時時鐘的樣式能夠保持

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高青县| 泌阳县| 峨边| 冀州市| 大埔县| 舞阳县| 游戏| 九台市| 仪陇县| 清徐县| 元谋县| 财经| 竹北市| 西城区| 胶州市| 青州市| 进贤县| 六盘水市| 镇沅| 临沂市| 台东县| 孟津县| 洛南县| 车致| 通州市| 云梦县| 南木林县| 山西省| 神木县| 绥宁县| 惠安县| 肃宁县| 麟游县| 安徽省| 天津市| 镇远县| 万全县| 营口市| 阿勒泰市| 石狮市| 闸北区|