真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用html5畫一個時鐘

本篇內(nèi)容介紹了“如何用html5畫一個時鐘”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供涪陵網(wǎng)站建設(shè)、涪陵做網(wǎng)站、涪陵網(wǎng)站設(shè)計、涪陵網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、涪陵企業(yè)網(wǎng)站模板建站服務(wù),10余年涪陵做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

1.實現(xiàn)效果

2.關(guān)于canvas

HTML的canvas的相關(guān)內(nèi)容可以看菜鳥教程的這篇文章。我主要是通過這篇文章來學習canvas的基礎(chǔ)知識的。這個小項目也是參考了文章中附帶的參考代碼。

3.代碼分析

3.1 HTML部分

用canvas標簽創(chuàng)建一個500*500的畫布

你的瀏覽器不支持 canvas,請升級你的瀏覽器。

3.2 創(chuàng)建context對象

var canvas = document.getElementById('clock');

var ctx = canvas.getContext("2d");

3.3 畫圓

為了方便后面的操作,這里就先把原點通過translate方法移動到了畫布的中心(250, 250)。

ctx.strokeStyle = "black";

ctx.translate(250, 250); //一定坐標原點到原來的中心

ctx.lineWidth = 3;

ctx.beginPath();

ctx.arc(0, 0, 240, 0, 2 * Math.PI); //繪制圓周

ctx.stroke();

ctx.closePath();

3.4 畫刻度

個人感覺這部分是整個項目中最復(fù)雜的部分,但其實也復(fù)雜不到哪里去。

在這部分中,我們不需要考慮斜線的相關(guān)坐標。這里所有刻度的延長線都經(jīng)過原點(250,250),所以我每畫一條刻度,都會把都會把x軸旋轉(zhuǎn)到和相應(yīng)刻度重合。這樣一來,在畫每一條刻度線時,刻度線的y坐標都是0。由于每次都要旋轉(zhuǎn)一次坐標軸,所以每次操縱前都通過方法save()保存當前狀態(tài),操作完再通過restore()恢復(fù)狀態(tài)信息。

for (let i = 0; i < 60; i++) {//繪制刻度。

ctx.save();

ctx.rotate(-Math.PI / 2 + i * Math.PI / 30); //旋轉(zhuǎn)坐標軸。坐標軸x的正方形從 向上開始算起

ctx.beginPath();

var startX = i % 5 ? 210 : 200;

ctx.moveTo(startX, 0);

ctx.lineTo(230, 0);

ctx.lineWidth = i % 5 ? 2 : 4;

ctx.stroke();

ctx.closePath();

ctx.restore();

}

3.5 畫指針

其實來到這里,要用到的canvas知識基本就和前面重復(fù)了。畫指針的基本思路就是通過系統(tǒng)的當前時間計算出每根針的角度。再把坐標軸旋轉(zhuǎn)到相應(yīng)的角度,最后畫一個直線即可。這里為了好看點,通過設(shè)置ctx.lineCap = "round"使指針末端呈現(xiàn)圓角。

“如何用html5畫一個時鐘”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


名稱欄目:如何用html5畫一個時鐘
標題來源:http://weahome.cn/article/jecess.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部