JavaScript Canvas編寫炫彩的網(wǎng)頁(yè)時(shí)鐘
本文實(shí)例為大家分享了JavaScript Canvas編寫炫彩網(wǎng)頁(yè)時(shí)鐘的具體代碼,供大家參考,具體內(nèi)容如下
只是利用了Canvas制作的。
示意圖如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html"; charsert = "utf-8" />
<title> 網(wǎng)頁(yè)時(shí)鐘 </title>
</head>
<body>
<h2> Web時(shí)鐘 </h2>
<canvas id = "hello" width = "400" height = "400"
style = "border:1px solid black"> </canvas>
<script languagetype = "text/javascript">
var myCavas = document.getElementById('hello');
var c = myCavas.getContext('2d');
function clock() {
c.clearRect(0, 0, 400, 400);
//獲取當(dāng)前時(shí)間
var data = new Date();
//獲取秒
var sec = data.getSeconds();
//獲取分鐘
var min = data.getMinutes();
//獲取小時(shí)
var hour = data.getHours();
c.save();
c.translate(200, 200);
c.rotate(-Math.PI/2);
//分針刻度線
for (var i = 0; i < 60; i++) { //畫60個(gè)刻度線
c.beginPath();
c.strokeStyle = "yellowgreen";
c.lineWidth = 5;
c.moveTo(117, 0);
c.lineTo(120, 0);
c.stroke();
//每6deg畫一個(gè)分鐘刻度線
c.rotate(Math.PI/30);
c.closePath();
}
//時(shí)鐘刻度線
for (var i = 0; i < 12; i++) { //畫60個(gè)刻度線
c.beginPath();
c.strokeStyle = "green";
c.lineWidth = 8;
c.moveTo(100, 0);
c.lineTo(120, 0);
c.stroke();
//每6deg畫一個(gè)分鐘刻度線
c.rotate(Math.PI/6);
c.closePath();
}
//外表盤
c.beginPath();
c.strokeStyle = "pink";
c.arc(0, 0, 145, 0, Math.PI*2);
c.lineWidth = 12;
c.stroke();
c.closePath();
//畫時(shí)針
hour = hour > 12 ? hour-12 : hour;
//console.log(hour);
c.beginPath();
c.save();
//設(shè)置旋轉(zhuǎn)角度,參數(shù)是弧度,角度0-360 弧度角度*Math.PI/180
c.rotate(Math.PI/6*hour + Math.PI/6*min/60 + Math.PI/6*sec/3600);
c.strokeStyle = "yellowgreen";
c.lineWidth = 4;
c.moveTo(-20, 0);
c.lineTo(50, 0);
c.stroke();
c.restore();
c.closePath();
//畫分針
//console.log(min);
c.beginPath();
c.save();
c.rotate(Math.PI/30*min + Math.PI/30*sec/60);
c.strokeStyle = "springgreen";
c.lineWidth = 3;
c.moveTo(-30, 0);
c.lineTo(70, 0);
c.stroke();
c.restore();
c.closePath();
//畫秒針
c.beginPath();
c.save();
c.rotate(Math.PI/30*sec);
c.strokeStyle = "red";
c.lineWidth = 2;
c.moveTo(-40, 0);
c.lineTo(120, 0);
c.stroke();
c.restore();
c.closePath();
c.restore();
}
clock();
setInterval(clock, 1000);
</script>
</body>
</html>
更多JavaScript時(shí)鐘特效點(diǎn)擊查看:JavaScript時(shí)鐘特效專題
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript canvas實(shí)現(xiàn)文字時(shí)鐘
- 使用js和canvas實(shí)現(xiàn)時(shí)鐘效果
- JavaScript canvas動(dòng)畫實(shí)現(xiàn)時(shí)鐘效果
- javascript+HTML5 canvas繪制時(shí)鐘功能示例
- JS+H5 Canvas實(shí)現(xiàn)時(shí)鐘效果
- JS+Canvas繪制動(dòng)態(tài)時(shí)鐘效果
- JavaScript Canvas繪制圓形時(shí)鐘效果
- js Canvas繪制圓形時(shí)鐘效果
- js Canvas實(shí)現(xiàn)的日歷時(shí)鐘案例分享
- js Canvas實(shí)現(xiàn)圓形時(shí)鐘教程
- js基于canvas實(shí)現(xiàn)時(shí)鐘組件
相關(guān)文章
使用JavaScript實(shí)現(xiàn)一個(gè)物理模擬
最近掌門人在寫3D游戲,對(duì)于其中的物理效果很感興趣,今天我將使用純JavaScript來實(shí)現(xiàn)一個(gè)簡(jiǎn)易的物理模擬,其中包括碰撞檢測(cè)與響應(yīng)、摩擦力與空氣阻力、以及物體的破壞效果,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-01-01
JavaScript實(shí)現(xiàn)的冒泡排序法及統(tǒng)計(jì)相鄰數(shù)交換次數(shù)示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的冒泡排序法及統(tǒng)計(jì)相鄰數(shù)交換次數(shù),結(jié)合實(shí)例形式分析了javascript冒泡排序的實(shí)現(xiàn)技巧及針對(duì)交換次數(shù)的統(tǒng)計(jì)方法,便于更直觀的了解冒泡排序算法,需要的朋友可以參考下2017-04-04
js+css完成網(wǎng)站的會(huì)員照片信息顯示效果
js+css完成網(wǎng)站的經(jīng)典效果,一般用于會(huì)員排行榜中,會(huì)員信息的介紹,包括照片等。2010-06-06
JavaScript數(shù)組去重和扁平化函數(shù)介紹
這篇文章主要介紹了JavaScript數(shù)組去重和扁平化函數(shù),數(shù)組扁平化又稱數(shù)組降維,下面文章圍繞數(shù)組去重和扁平化函數(shù)得相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下2021-12-12
微信小程序?qū)崿F(xiàn)點(diǎn)擊出現(xiàn)彈窗
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊出現(xiàn)彈窗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
JS使用對(duì)象的defineProperty進(jìn)行變量監(jiān)控操作示例
這篇文章主要介紹了JS使用對(duì)象的defineProperty進(jìn)行變量監(jiān)控操作,結(jié)合實(shí)例形式分析了對(duì)象defineProperty方法的功能及簡(jiǎn)單使用技巧,需要的朋友可以參考下2019-02-02
Web網(wǎng)站都變成灰色有哪些方法可以快速實(shí)現(xiàn)(解決方案)
有些時(shí)候我們需要把網(wǎng)站頁(yè)面變成黑白色或灰色,特別是對(duì)于一些需要悼念的日子,以及一些影響力很大的偉人逝世或紀(jì)念日的時(shí)候,都會(huì)讓網(wǎng)站的全部網(wǎng)頁(yè)變成灰色(黑白色),以表示我們對(duì)逝者或者英雄的緬懷和悼念2022-12-12

