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

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

你需要知道的:

canvas標(biāo)簽只是圖形容器,您必須使用腳本來(lái)繪制圖形。默認(rèn)大小:寬300px,高150px;

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

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

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

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

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

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

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

繪制圓形:

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

x,y:起始位置

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

旋轉(zhuǎn)方向:順時(shí)針(默認(rèn):false,逆時(shí)針: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);//清空畫(huà)布   

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

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

                                var oMin = oDate.getMinutes();   

                                var oSen = oDate.getSeconds();   

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

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

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

                                oGC.beginPath();//開(kāi)始   

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

                                        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è)置時(shí)鐘圓盤大刻度的粗細(xì)值   

                                oGC.beginPath();  //開(kāi)始畫(huà)大的時(shí)鐘刻度   

                                for(i=0;i<12;i++){              //i為12,代表著時(shí)鐘刻度的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è)置時(shí)針寬度   

                                oGC.beginPath();//開(kāi)始繪制時(shí)針   

                                oGC.moveTo(x,y);   

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

                                oGC.closePath();   

                                oGC.stroke();   

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

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

                                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();//開(kāi)始繪制秒針   

                                oGC.moveTo(x,y);   

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

                                oGC.closePath();   

                                oGC.stroke();   

                        }   

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

                                drawClock();   

                };   

        </script>  

</head>  

<body>  

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

</body>  

</html>  

更多信息請(qǐng)查看網(wǎng)頁(yè)制作
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀網(wǎng)頁(yè)制作

2025國(guó)考·省考課程試聽(tīng)報(bào)名

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