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

首頁 > 編程 > JavaScript > 正文

JS+Canvas繪制動態時鐘效果

2019-11-19 14:57:18
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Canvas繪制動態時鐘效果展示的具體代碼,供大家參考,具體內容如下

<!DOCTYPE html> <html>  <head>   <meta charset="utf-8" />   <title></title>   <style>    #mycanvas{     position: absolute;     left:50%;     margin-left:-250px;     border:5px solid #fff;     box-shadow: 0 0 10px rgba(0,0,0,0.2);     background-color: rgb(58, 179, 255);    }   </style>  </head>  <body>   <!--    canvas:html5新增的畫布對象,可以在其中繪制任何的圖形,以及線條效果,包括圖片    注意canvas的尺寸應該通過元素的屬性直接設置,而不是使用樣式實現(失幀)   -->   <canvas id="mycanvas" width="500px" height="500px">您的瀏覽器太low了,請切換</canvas>   <script>    //獲取畫布對象    var mycanvas = document.getElementById('mycanvas');    //獲取一個2d繪圖環境(拿到一支畫筆)    var ctx = mycanvas.getContext('2d');       function draw(){      //獲取系統時間    var nowTime = new Date();    var hours = nowTime.getHours();//獲取時    var minutes = nowTime.getMinutes();//獲取分    var seconds = nowTime.getSeconds();//獲取秒        //防止小時超過12    hours = hours > 12 ? hours-12 : hours;    //精準設置小時值    hours = hours + minutes/60;      //清除畫布(防止覆蓋)    ctx.clearRect(0,0,500,500);      //初始化畫筆的樣式    ctx.lineWidth = 5; //設置線條的寬度    ctx.strokeStyle = '#fff'; //設置線條顏色        ctx.beginPath();//開始新的繪圖路徑    //設置一個圓形路徑    ctx.arc(250,250,150,0,360,false);    //繪制圖形    ctx.stroke();    ctx.closePath();//結束當前繪圖路徑        //繪制刻度(時刻度)    for(var i = 0;i < 12;i++){     ctx.beginPath();     ctx.lineWidth = 10;     //保存當前繪圖環境     ctx.save();     //重置繪制起始位置(將圓心位置重置為0,0)     ctx.translate(250,250);     //旋轉畫布到一定的弧度 弧度=角度*PI/180     ctx.rotate(i * 30 * Math.PI / 180);     //設置繪制線條的起始位置     ctx.moveTo(0,140);     //設置線條的結束位置     ctx.lineTo(0,150);     //繪制路徑     ctx.stroke();     //還原初始的繪圖環境     ctx.restore();     ctx.closePath();    }        //繪制刻度(分刻度)    for(var i = 0;i < 60;i++){     ctx.beginPath();     ctx.lineWidth = 3;     //保存當前繪圖環境     ctx.save();     //重置繪制起始位置(將圓心位置重置為0,0)     ctx.translate(250,250);     //旋轉畫布到一定的弧度 弧度=角度*PI/180     ctx.rotate(i * 6 * Math.PI / 180);     //設置繪制線條的起始位置     ctx.moveTo(0,142);     //設置線條的結束位置     ctx.lineTo(0,146);     //繪制路徑     ctx.stroke();     //還原初始的繪圖環境     ctx.restore();     ctx.closePath();    }        /*繪制時針*/    ctx.beginPath();    ctx.lineWidth = 5;    //保存當前繪圖環境    ctx.save();    //重置繪制起始位置(將圓心位置重置為0,0)    ctx.translate(250,250);    //旋轉畫布到一定的弧度 弧度=角度*PI/180    ctx.rotate(hours * 30 * Math.PI / 180);    //設置繪制線條的起始位置    ctx.moveTo(0,10);    //設置線條的結束位置    ctx.lineTo(0,-100);    //繪制路徑    ctx.stroke();    //還原初始的繪圖環境    ctx.restore();    ctx.closePath();        /*繪制分針*/    ctx.beginPath();    ctx.lineWidth = 3;    //保存當前繪圖環境    ctx.save();    //重置繪制起始位置(將圓心位置重置為0,0)    ctx.translate(250,250);    //旋轉畫布到一定的弧度 弧度=角度*PI/180    ctx.rotate(minutes * 6 * Math.PI / 180);    //設置繪制線條的起始位置    ctx.moveTo(0,10);    //設置線條的結束位置    ctx.lineTo(0,-120);    //繪制路徑    ctx.stroke();    //還原初始的繪圖環境    ctx.restore();    ctx.closePath();            /*繪制秒針*/    ctx.beginPath();    ctx.lineWidth = 1;    ctx.strokeStyle = '#f00';    //保存當前繪圖環境    ctx.save();    //重置繪制起始位置(將圓心位置重置為0,0)    ctx.translate(250,250);    //旋轉畫布到一定的弧度 弧度=角度*PI/180    ctx.rotate(seconds * 6 * Math.PI / 180);    //設置繪制線條的起始位置    ctx.moveTo(0,10);    //設置線條的結束位置    ctx.lineTo(0,-135);    //繪制路徑    ctx.stroke();    //還原初始的繪圖環境    ctx.restore();    ctx.closePath();   }      setInterval(draw,1000);      </script>  </body> </html> 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄冈市| 青州市| 清涧县| 房山区| 闽侯县| 武川县| 澄迈县| 芜湖市| 久治县| 临泽县| 南开区| 金沙县| 揭东县| 江安县| 大安市| 大连市| 扎赉特旗| 宣化县| 昌吉市| 曲靖市| 英吉沙县| 新兴县| 榆中县| 保定市| 周宁县| 赤水市| 教育| 通许县| 习水县| 慈利县| 安阳市| 长垣县| 罗源县| 江源县| 乌苏市| 项城市| 临泽县| 临泽县| 蓝田县| 忻州市| 苏尼特左旗|