日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

javascript canvas時鐘模擬器

瀏覽:300日期:2023-06-19 11:21:03

canvas時鐘模擬器,供大家參考,具體內(nèi)容如下

主要功能

能夠顯示當前的時間,也能夠切換夜晚模式和白天模式

主要代碼

h = h > 12 ? h : h - 12 // 下午時間修正

// 如果畫布狀態(tài)很混沌的話多使用ctx.restore()恢復(fù)到最初狀態(tài)而不要強行再用同樣的方法矯正狀態(tài),比如使用rotate順時針旋轉(zhuǎn)n度之后,再使用rotate以同樣的逆時針角度轉(zhuǎn)回去.

參考代碼

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>鐘表模擬器</title> <meta name='viewport' content='width=device-width, initial-scale=1.0'></head><body><canvas height='600px'> 您的瀏覽器不支持canvas,請升級您的瀏覽器</canvas><div class='mode'> Night mode</div><div id='fullscreen'></div></body><script> /* * * 模擬鐘表 * * */ window.onload = () => { // 瀏覽器禁止在你剛剛進入一個頁面的時候就變成全屏,這是為了用戶的安全和體驗 // let elem = document.querySelector(’#fullscreen’) // // let event = new Event(’myEvent’) // // elem.addEventListener(’myEvent’, function (e) { // console.log(’ok’) // setTimeout(() => { // let element = document.documentElement // if (element.requestFullscreen) { // element.requestFullscreen() // } else if (element.msRequestFullscreen) { // element.msRequestFullscreen() // } else if (element.mozRequestFullScreen) { // element.mozRequestFullScreen() // } else if (element.webkitRequestFullscreen) { // element.webkitRequestFullscreen() // } // }, 1000) // // }, false) // // elem.dispatchEvent(event) // 切換夜晚模式和白天模式 let mode = document.getElementsByClassName(’mode’) let nightMode = false mode[0].onclick = () => { nightMode = !nightMode document.body.style.backgroundColor = nightMode === false ? ’#fff’ : ’#000’ mode[0].innerHTML = nightMode === false ? ’Night mode’ : ’exit’ if (nightMode) { mode[0].style.color = ’#000’ mode[0].style.backgroundColor = ’#fff’ } else { mode[0].style.color = ’#fff’ mode[0].style.backgroundColor = ’#000’ } } // 鼠標進入變色(可進一步簡潔) mode[0].onmouseover = () => { if (nightMode) { mode[0].style.color = ’#000’ mode[0].style.backgroundColor = ’#fff’ } else { mode[0].style.color = ’#fff’ mode[0].style.backgroundColor = ’#000’ } } // 鼠標移出變色(可進一步簡潔) mode[0].onmouseout = () => { if (nightMode) { mode[0].style.color = ’#fff’ mode[0].style.backgroundColor = ’#000’ } else { mode[0].style.color = ’#000’ mode[0].style.backgroundColor = ’#fff’ } } doHidden() // // 在一秒之后把光標去掉 function doHidden() { let time = ’’ document.body.onmousemove = () => { document.body.style.cursor = ’default’ // 恢復(fù)普通的光標 console.log(’ok’) if (time) { clearTimeout(time) } // 一秒后鼠標不動自動使光標消失 time = setTimeout(() => { console.log(’ok2’) document.body.style.cursor = nightMode === false ? `url(’./imgs/hidden-box2.ani’), default` : `url(’./imgs/hidden-box.ani’), default` // 這里的光標文件自己定義,最好是透明的空文件,找網(wǎng)上的圖標文件轉(zhuǎn)換器轉(zhuǎn)換為ani文件 }, 1000) } } let canvas = document.getElementById(’demo’) let ctx = canvas.getContext(’2d’) // 為了繪制時針,把坐標軸原點轉(zhuǎn)移到畫布中心 ctx.translate(500, 300) // 開始正式繪制第一次 drew() // 持續(xù)更新畫布 setInterval(() => { drew() }, 500) // 核心方法 function drew() { // 刷新畫布 ctx.fillStyle = nightMode === false ? ’#fff’ : ’#000’ ctx.fillRect(-500, -300, 1000, 600) // 時鐘的大框框 ctx.save() ctx.lineWidth = 6 ctx.strokeStyle = ’#FFD034’ ctx.lineCap = ’round’ // 筆畫尖端為圓形 ctx.rotate(-90 * Math.PI / 180) // 十二點鐘方向 ctx.beginPath() ctx.arc(0, 0, 240, 0, 360 * Math.PI / 180) ctx.stroke() // 時針的刻度 ctx.save() ctx.lineWidth = 10 ctx.strokeStyle = nightMode === true ? ’#fff’ : ’#000’ for (let i = 0; i <= 11; i++) { ctx.beginPath() ctx.moveTo(200, 0) ctx.lineTo(222, 0) ctx.stroke() ctx.rotate(30 * Math.PI / 180) } ctx.restore() // 分針的刻度 ctx.save() ctx.lineWidth = 4 ctx.strokeStyle = ’#9B71EA’ for (let i = 0; i < 60; i++) { if (i % 5 === 0) { ctx.rotate(6 * Math.PI / 180) } else { ctx.beginPath() ctx.moveTo(205, 0) ctx.lineTo(222, 0) ctx.stroke() ctx.rotate(6 * Math.PI / 180) } } ctx.restore() // 獲取時間,正式開始繪制 let date = new Date() let s = date.getSeconds() let m = date.getMinutes() + s / 60 let h = date.getHours() + m / 60 h = h > 12 ? h : h - 12 // 下午時間修正 // 畫時針 ctx.save() ctx.lineWidth = 18 ctx.strokeStyle = ’#91FF99’ ctx.rotate(30 * h * Math.PI / 180) // 順時針旋轉(zhuǎn)的 ctx.beginPath() ctx.moveTo(-20, 0) ctx.lineTo(100, 0) ctx.stroke() ctx.restore() // 畫分針 ctx.save() ctx.lineWidth = 12 ctx.strokeStyle = ’#D291FF’ ctx.rotate(6 * m * Math.PI / 180) // 順時針旋轉(zhuǎn)的 ctx.beginPath() ctx.moveTo(-35, 0) ctx.lineTo(138, 0) ctx.stroke() ctx.restore() // 畫秒針 ctx.save() ctx.lineWidth = 8 ctx.strokeStyle = ’#FF8465’ ctx.rotate(6 * s * Math.PI / 180) // 順時針旋轉(zhuǎn)的 ctx.beginPath() ctx.moveTo(-55, 0) ctx.lineTo(115, 0) ctx.stroke() // 給秒針添加花樣 ctx.beginPath() ctx.arc(130, 0, 15, 0, 360 * Math.PI / 180) ctx.stroke() ctx.beginPath() ctx.moveTo(145, 0) ctx.lineTo(178, 0) ctx.stroke() // 最后給鐘添加最中心的一個`固定器` ctx.beginPath() ctx.arc(0, 0, 15, 0, 360 * Math.PI / 180) ctx.fillStyle = ’#FF8465’ ctx.fill() ctx.restore() ctx.restore() // 回到最初最初最初的狀態(tài)(主要是把為了畫時針而把畫布旋轉(zhuǎn)的角度矯正回去) } }</script><style> * { margin: 0; padding: 0; } body { background-color: #fff; text-align: center; transition: 0.5s; } #demo { margin-top: 140px; background-color: white; border-radius: 15px; } .mode { font-family: Consolas, serif; width: 150px; margin: 25px auto; padding: 15px 25px; border: 2px solid #CCCCCC; border-radius: 15px; background-color: white; user-select: none; box-shadow: 1px 1px 2px #aaaaaa; transition: 0.5s; cursor: pointer; }</style></html>

顯示效果:

白天模式:

javascript canvas時鐘模擬器

夜晚模式

javascript canvas時鐘模擬器

切換模式

javascript canvas時鐘模擬器

總結(jié):

其實,沒有什么代碼做不出的效果,只有你想不到的效果。很多復(fù)雜的東西其實,在本質(zhì)上,會是很多簡單的東西的一種整合,只要用心去鉆研,一定會有收獲!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩1区2区日韩1区2区| 欧美日韩水蜜桃| 日韩中文字幕在线一区| 日韩毛片视频| 国产一区2区在线观看| 伊人久久一区| 亚洲精品女人| 日韩av三区| 一区二区国产在线观看| 欧美亚洲在线日韩| 欧美日韩视频网站| 激情视频网站在线播放色| 欧美国产中文高清| 日韩精品午夜| 国产极品模特精品一二| 天使萌一区二区三区免费观看| 欧美成人精品| 日韩av一级| 视频小说一区二区| 在线一区视频观看| 91精品国产福利在线观看麻豆| 日韩成人精品一区二区| 成人日韩精品| 99视频一区| 国产日韩亚洲欧美精品| 国产日韩中文在线中文字幕| 久久亚洲精品中文字幕| 黄色日韩精品| 黄色精品视频| 色在线中文字幕| 国产成人精品一区二区三区视频 | 日韩和欧美一区二区| 91精品国产自产在线丝袜啪| 麻豆国产精品一区二区三区| 97精品国产福利一区二区三区| 亚洲播播91| 婷婷亚洲五月| 日韩精品欧美大片| 国产精品白浆| 日韩在线欧美| 亚洲欧洲午夜| 亚洲精品美女| 国产一区二区三区不卡av| 在线视频观看日韩| 丝袜美腿亚洲色图| 国产女人18毛片水真多18精品| 精品不卡一区| 狠狠久久婷婷| 国产精品美女午夜爽爽| 成人日韩在线| 日韩欧美美女在线观看| 福利视频一区| 亚洲丝袜啪啪| 精品国产亚洲一区二区三区大结局| 久久久水蜜桃av免费网站| 美女网站久久| 欧美激情在线精品一区二区三区| 在线一区av| 免费在线看一区| 美腿丝袜亚洲一区| 婷婷亚洲五月| 久久爱www.| 国产韩日影视精品| 日韩国产精品久久久久久亚洲| 麻豆高清免费国产一区| 九九久久婷婷| 久久av资源| 亚洲男女av一区二区| 国产欧美一区二区色老头| 电影亚洲精品噜噜在线观看| 日韩中文字幕| av高清不卡| 欧美亚洲色图校园春色| 91精品一区国产高清在线gif| 日本欧美一区| 亚洲国产不卡| 国产成人免费| 日本成人精品| 美女少妇全过程你懂的久久| 国产精品白浆| 亚洲精品美女91| 欧美日韩中文一区二区| 国产精品对白| 亚洲视频国产| se01亚洲视频 | 四虎精品一区二区免费| se01亚洲视频| 美女高潮久久久| 中文字幕一区二区av| 波多野结衣久久精品| 日本天堂一区| 久久成人亚洲| 久久久人人人| 成人国产综合| 国产精品一区二区中文字幕| 国产精品免费看| 日韩成人高清| 国产一区二区三区四区大秀| 欧美亚洲一级| 亚洲精品影视| 夜夜精品视频| 99tv成人| 四虎8848精品成人免费网站| 国产日产一区| 最新国产精品久久久| 亚洲免费黄色| 国产精品v一区二区三区| 国产午夜精品一区二区三区欧美 | 久久国产直播| 三级在线观看一区二区| 精品欧美日韩精品| 亚洲2区在线| 亚洲1区在线| 日韩中文字幕一区二区三区| 婷婷六月综合| 成人福利视频| 国产专区一区| 亚洲手机视频| 久久久久国产精品一区二区| 国产日韩欧美一区| 欧美日韩精品免费观看视欧美高清免费大片 | 国产 日韩 欧美一区| 国产亚洲精品美女久久| 亚洲成人三区| 亚洲精品高潮| 视频在线观看一区| a天堂资源在线| 日本强好片久久久久久aaa| 国产91在线精品| 欧美另类中文字幕| 亚洲精品伦理| 高清一区二区| 国语精品一区| 精品免费av| 麻豆精品少妇| 欧美国产不卡| 国产中文字幕一区二区三区| 久久精品国产99国产精品| 国产精品入口久久| 久久gogo国模啪啪裸体| 久久精品国产成人一区二区三区| 国产探花一区在线观看| 日本国产亚洲| 四虎国产精品免费久久| 日韩毛片网站| 国产探花一区在线观看| 另类小说一区二区三区| 日韩av片子| 久久精品青草| 99xxxx成人网| 亚洲制服一区| 久久国产精品色av免费看| 国产精品嫩模av在线| 麻豆精品在线视频| 视频二区不卡| 国产综合精品| 只有精品亚洲| 国产精品亚洲成在人线| 国产精品3区| 日韩久久精品网| 香蕉久久夜色精品国产| 日本在线观看不卡视频| 欧美精品第一区| 91亚洲成人| 欧美日韩精品免费观看视频完整| 综合国产在线| 国产精品香蕉| 天堂√中文最新版在线| 午夜电影亚洲| 久久狠狠久久| 精品捆绑调教一区二区三区| 亚洲免费精品| 国产精品亚洲综合色区韩国 | 在线日韩成人| 国产精品一区亚洲| 久久久国产精品一区二区中文| 亚洲专区一区| 欧美国产亚洲精品| 亚洲精品a级片| 欧美一区激情| 99久久夜色精品国产亚洲1000部| 日本欧美在线看| 久久午夜影院| 国产亚洲网站| 麻豆成人av在线| 久久高清国产| 国产精品亚洲欧美一级在线| 另类中文字幕国产精品| 日本在线视频一区二区| 成人亚洲一区| 日韩欧美久久| 欧美三区四区| 日本国产一区| 精品成人免费一区二区在线播放| 日韩中文字幕无砖| 高清av不卡| 91成人在线| 91精品精品| 国产精品亚洲成在人线| 尤物在线精品|