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

您的位置:首頁技術文章
文章詳情頁

javascript canvas時鐘模擬器

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

canvas時鐘模擬器,供大家參考,具體內容如下

主要功能

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

主要代碼

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

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

參考代碼

<!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’ // 恢復普通的光標 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` // 這里的光標文件自己定義,最好是透明的空文件,找網上的圖標文件轉換器轉換為ani文件 }, 1000) } } let canvas = document.getElementById(’demo’) let ctx = canvas.getContext(’2d’) // 為了繪制時針,把坐標軸原點轉移到畫布中心 ctx.translate(500, 300) // 開始正式繪制第一次 drew() // 持續更新畫布 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) // 順時針旋轉的 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) // 順時針旋轉的 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) // 順時針旋轉的 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() // 回到最初最初最初的狀態(主要是把為了畫時針而把畫布旋轉的角度矯正回去) } }</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時鐘模擬器

總結:

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

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

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆91小视频| 久久亚洲精品伦理| 国产精选在线| 人人精品亚洲| 亚洲欧美日韩专区| 免费成人在线影院| 91国内精品| xxxxx性欧美特大| 亚洲综合另类| 欧美精品第一区| 亚洲午夜黄色| 日韩精品免费视频人成| 精品久久精品| 亚洲国产日韩欧美在线| 69堂精品视频在线播放| av中文资源在线资源免费观看| 欧美va天堂在线| 日本亚洲最大的色成网站www| 精品一区av| 欧美日韩免费观看一区=区三区 | 欧美日韩精品免费观看视完整| 激情自拍一区| 国产欧美一区二区三区国产幕精品| 国产精品不卡| 一区二区三区四区精品视频| 日韩av有码| 免费人成网站在线观看欧美高清| 欧美日本久久| 欧美精品一二| 精品网站aaa| 美女网站久久| 麻豆网站免费在线观看| 亚洲aa在线| 欧美日韩在线观看首页| 日韩中文字幕亚洲一区二区va在线 | 日本少妇一区| 日本成人中文字幕| 亚洲成av人片一区二区密柚| 国产欧美日本| 国产视频欧美| 日韩国产一区| 国产精品美女在线观看直播| 狠狠干成人综合网| 精品日韩一区| 亚洲另类av| 神马午夜在线视频| 国产亚洲一区二区三区啪| 在线国产一区二区| 国产粉嫩在线观看| 国产精品欧美三级在线观看| 亚洲欧美日本国产专区一区| yellow在线观看网址| 久久国产视频网| 蜜桃一区二区三区在线| 亚洲黑丝一区二区| 97精品国产福利一区二区三区| 欧美日韩亚洲国产精品| 免费日韩av片| 免费视频亚洲| 日韩黄色大片网站| 国产精品亚洲一区二区在线观看| 秋霞影院一区二区三区| 精品国产99| 国产亚洲一区二区三区啪| 亚洲我射av| 午夜在线精品| 精品一区欧美| 日韩欧美另类一区二区| 久久精品国产亚洲aⅴ| 久久激情五月婷婷| 日韩在线麻豆| 婷婷成人av| 国产不卡人人| 国产精品一区二区99| 偷拍亚洲精品| 国产精品嫩草99av在线| 日韩精品一区二区三区免费观影| 精品视频在线观看网站| 国产日韩亚洲欧美精品| 日本综合精品一区| 亚洲欧洲日韩| 亚洲天堂av资源在线观看| 黄色欧美日韩| 波多野结衣一区| 91亚洲国产成人久久精品| 精品久久99| 精品国产欧美日韩| 精品视频一区二区三区四区五区| 国产精品www994| 国产乱子精品一区二区在线观看| 亚洲有吗中文字幕| 视频在线在亚洲| 亚洲欧美日韩专区| 天堂成人免费av电影一区| 美日韩精品视频| 男女男精品网站| 亚洲不卡视频| 91成人在线网站| 国产亚洲人成a在线v网站| 欧美日韩1区2区3区| 日本va欧美va精品| 91午夜精品| 国产精品欧美大片| 精品国产18久久久久久二百| 国产精品高颜值在线观看| 捆绑调教日本一区二区三区| 中文字幕在线视频网站| 欧美亚洲日本精品| 久久久精品久久久久久96| 欧美亚洲精品在线| 日韩视频不卡| 一区二区三区四区日韩| 人人精品久久| 久久爱www.| 成人日韩在线| 欧美日韩国产高清| 免费看黄色91| 日韩国产欧美一区二区三区| 国产精品亚洲欧美| 97视频热人人精品免费| 亚洲成人精品| 国产视频一区免费看| 一区二区91| 国产精品最新| 狠狠久久伊人中文字幕| 久久久久国产一区二区| 亚洲精品123区| 911精品国产| 欧美激情另类| 国产日韩专区| 国产精区一区二区| 中文字幕在线高清| 日韩.com| 日韩精品网站| 精品中文一区| 中文字幕中文字幕精品| 日韩精品一级二级| 日韩国产欧美在线播放| 国产精品3区| 国产66精品| 成人羞羞在线观看网站| 偷拍欧美精品| 国产精品日本| 日韩精品福利一区二区三区| 日韩av字幕| 精品国产一级| 久久伦理在线| 日韩制服丝袜先锋影音| 欧美日韩精品一区二区三区在线观看| 欧美激情福利| 日韩精品一区二区三区免费观影 | 欧美亚洲国产一区| 亚洲人亚洲人色久| 久久一区欧美| 亚洲国产综合在线看不卡| 亚洲一区二区三区高清| 无码日韩精品一区二区免费| 99精品网站| 日本不卡的三区四区五区| 国产一区二区久久久久| 国产精品社区| 亚洲人成网站在线在线观看| 麻豆极品一区二区三区| 欧美日韩四区| 精品国产aⅴ| 亚洲尤物av| 久久久久国产精品一区三寸| 欧美日韩一区二区三区不卡视频| 日韩成人高清| 欧美日韩一区二区三区四区在线观看 | 野花国产精品入口| 国产精品a级| 蜜臀久久99精品久久久画质超高清 | 激情综合五月| 亚洲精选av| 91精品一区国产高清在线gif| 日本色综合中文字幕| 在线日韩av| 精品视频97| 少妇精品久久久一区二区| 婷婷综合六月| 国产精品视频一区视频二区| 在线视频免费在线观看一区二区| 精品伊人久久| 亚洲精品黄色| 九一成人免费视频| 国产一区二区三区四区| 亚洲人妖在线| 日韩视频一区| 色在线视频观看| 麻豆久久一区| 视频一区免费在线观看| 亚洲综合激情在线| 亚洲午夜天堂| 日韩和欧美一区二区| 欧产日产国产精品视频| 欧美精品国产白浆久久久久| 亚洲一区二区免费看| 久久婷婷av| 高清av一区|