使用純HTML5編寫一款網(wǎng)頁上的時鐘的代碼分享
來源:易賢網(wǎng) 閱讀:1299 次 日期:2016-07-09 10:22:51
溫馨提示:易賢網(wǎng)小編為您整理了“使用純HTML5編寫一款網(wǎng)頁上的時鐘的代碼分享”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了使用純HTML5編寫一款網(wǎng)頁上的時鐘的代碼分享,程序非常簡單且沒有時鐘上的數(shù)字顯示,純粹體現(xiàn)最基本的設(shè)計思路,需要的朋友可以參考下

你需要知道的:

canvas標(biāo)簽只是圖形容器,您必須使用腳本來繪制圖形。默認(rèn)大?。簩?00px,高150px;

getContext() 方法可返回一個對象,該對象提供了用于在畫布上繪圖的方法和屬性?!@取上下文對象。

getContext("2d") 對象屬性和方法,可用于在畫布上繪制文本、線條、矩形、圓形等等。

fillRect(l,t,w,h):默認(rèn)顏色是黑色 strokeRect(l,t,w,h):帶邊框的方塊。默認(rèn)一像素黑色邊框

setInterval() 方法可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達(dá)式。

beginPath():定義開始繪制路徑, 它把當(dāng)前的點設(shè)置為 (0,0)。 當(dāng)一個畫布的環(huán)境第一次創(chuàng)建,beginPath()

方法會被顯式地調(diào)用。

closePath():結(jié)束繪制路徑(將起點與終點進行連接)

繪制圓形:

arc( x,y,半徑,起始弧度,結(jié)束弧度,旋轉(zhuǎn)方向)

x,y:起始位置

弧度與角度的關(guān)系:弧度=角度*Math.PI/180

旋轉(zhuǎn)方向:順時針(默認(rèn):false,逆時針:true)

代碼:

XML/HTML Code

<!DOCTYPE HTML>  

<html lang="en-US">  

<head>  

        <meta charset="UTF-8">  

        <title></title>  

        <script>  

                window.onload = function(){   

                        var oC = document.getElementById('ch1');   

                        var oGC = oC.getContext('2d');   

                        function drawClock(){   

                                var x = 200;   //指定坐標(biāo)   

                                var y = 200;   

                                var r = 150;  //指定鐘表半徑   

                                oGC.clearRect(0,0,oC.width,oC.height);//清空畫布   

                                var oDate = new Date();      //創(chuàng)建日期對象   

                                var oHours = oDate.getHours();//獲取時間   

                                var oMin = oDate.getMinutes();   

                                var oSen = oDate.getSeconds();   

                                var oHoursValue = (-90 + oHours*30 + oMin/2)*Math.PI/180; //設(shè)置時針的值   

                                var oMinValue = (-90 + oMin*6)*Math.PI/180;   

                                var oSenValue = (-90 + oSen*6)*Math.PI/180;   

                                oGC.beginPath();//開始   

                                for(var i=0;i<60;i++){         //i為60,代表著時鐘的60個小刻度   

                                        oGC.moveTo(x,y);   

                                        oGC.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false); //循環(huán)從6度到12度   

                                }   

                                oGC.closePath();   

                                oGC.stroke();   

                                oGC.fillStyle ='white'; //覆蓋住小刻度的黑色線   

                                oGC.beginPath();   

                                oGC.moveTo(x,y);   

                                oGC.arc(x,y,r*19/20,0,360*(i+1)*Math.PI/180,false);   

                                oGC.closePath();//結(jié)束   

                                oGC.fill();   

                                oGC.lineWidth = 3; //設(shè)置時鐘圓盤大刻度的粗細(xì)值   

                                oGC.beginPath();  //開始畫大的時鐘刻度   

                                for(i=0;i<12;i++){              //i為12,代表著時鐘刻度的12大格   

                                        oGC.moveTo(x,y);   

                                        oGC.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI/180,false); // 間隔為30度,弧度=角度*Math.PI/180   

                                }   

                                oGC.closePath();   

                                oGC.stroke();   

                                oGC.fillStyle ='white'; //覆蓋住大刻度的黑色線   

                                oGC.beginPath();   

                                oGC.moveTo(x,y);   

                                oGC.arc(x,y,r*18/20,360*(i+1)*Math.PI/180,false);   

                                oGC.closePath();   

                                oGC.fill();//表盤完成    

                                oGC.lineWidth = 5;//設(shè)置時針寬度   

                                oGC.beginPath();//開始繪制時針   

                                oGC.moveTo(x,y);   

                                oGC.arc(x,y,r*10/20,oHoursValue,oHoursValue,false);//設(shè)置時針大小和弧度   

                                oGC.closePath();   

                                oGC.stroke();   

                                oGC.lineWidth = 3;//設(shè)置分針寬度   

                                oGC.beginPath();//開始繪制分針   

                                oGC.moveTo(x,y);   

                                oGC.arc(x,y,r*14/20,oMinValue,oMinValue,false);//設(shè)置分針大小和弧度   

                                oGC.closePath();   

                                oGC.stroke();   

                                oGC.lineWidth = 1;//設(shè)置秒針寬度   

                                oGC.beginPath();//開始繪制秒針   

                                oGC.moveTo(x,y);   

                                oGC.arc(x,y,r*19/20,oSenValue,oSenValue,false);//設(shè)置秒針大小和弧度   

                                oGC.closePath();   

                                oGC.stroke();   

                        }   

                        setInterval(drawClock,1000);//設(shè)置定時器,讓時鐘運轉(zhuǎn)起來   

                                drawClock();   

                };   

        </script>  

</head>  

<body>  

        <canvas id = "ch1" width = "400px" height = "400px"></canvas>  

</body>  

</html>  

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:使用純HTML5編寫一款網(wǎng)頁上的時鐘的代碼分享
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)