三步教你編寫一個Neumorphism風(fēng)格的小時鐘

      網(wǎng)友投稿 715 2022-05-29

      又到了自己編寫組件的時節(jié)了

      作為一名前端開發(fā)者,平時也是闊以沒事可以寫寫自定義的組件,增加一下自己的閱歷,實際開發(fā)中用到也可以

      通過CV大法去快速開發(fā)

      先提前來看一下最終的效果:

      先問一個小問題,現(xiàn)在大家現(xiàn)在更習(xí)慣于看哪種樣式的時間,是鐘表類型還是數(shù)字類型?(

      雖然你們的回答影響不了我做一個鐘表啦

      鐘表時間:

      數(shù)字時間:

      Neumorphism

      目前網(wǎng)上的一些時鐘風(fēng)格不太喜歡,之前偶然看到一款新擬物風(fēng)格Neumorphism的設(shè)計,讓我眼前不禁一亮

      所以本次時鐘組件的風(fēng)格就決定是你啦—

      新擬物

      Neumorphism風(fēng)格頁面

      正文開始

      上面又水了一堆話,增加了一下文字的數(shù)量,真是太開森了

      下面正式開始組件的制作流程

      一、時鐘表盤編寫

      因為本人使用的是vue,所以編寫的也是.vue組件

      先搭建一個clock.vue的組件,設(shè)定好props可能會接收的寬高,還有陰影顏色。

      陰影部分使用box-shadow進行設(shè)置

      其中像Compute中的styleVar內(nèi)容類似于CSS 中的:root

      也可以去此文章中查看相關(guān)方法:自己動手豐衣足食系列の自定義下拉框 vue 組件

      在主頁面app.vue中設(shè)置全局顏色為#EBE6DA

      在CSS 樣式編寫中,計算位置等值可以使用calc加var的方式計算

      代碼:

      效果:

      二、時鐘指針編寫

      在編寫指針時需要注意,指針的旋轉(zhuǎn)運動是圍繞圓心進行的,使用transform來改變旋轉(zhuǎn)

      所以需要使用transform-origin: bottom來設(shè)置選擇的基準(zhǔn)點,之后旋轉(zhuǎn)rotate改變

      在樣式編寫完成之后,就可以將當(dāng)前的北京時間與指針、分針、秒針的轉(zhuǎn)動相結(jié)合起來了

      這里的原理其實更加簡單,使用new Date()獲取到當(dāng)前的時分秒,然后再將時分秒按比例轉(zhuǎn)換成度數(shù)deg

      // 校準(zhǔn)時鐘指針方法 currentTime:function(){ let date = new Date(); this.hour = date.getHours(); this.minute = date.getMinutes(); this.second = date.getSeconds(); document.getElementsByClassName('hourhand')[0].style.transform = 'rotate(' + this.hour / 24 * 360 + 'deg)'; document.getElementsByClassName('minhand')[0].style.transform = 'rotate(' + this.minute / 60 * 360 + 'deg)'; document.getElementsByClassName('sechand')[0].style.transform = 'rotate(' + this.second / 60 * 360 + 'deg)'; }

      使用setInterval定時器定時1000毫秒執(zhí)行一次

      這樣就可以達到最終想要的效果了

      三、時鐘組件的調(diào)用

      編寫好時鐘組件后,接下來就可以在頁面上進行調(diào)用了

      import clock from './components/clock' export default { name: 'App', components: { clock } }

      調(diào)用就能夠?qū)r鐘放置到你想要的位置

      因為之前設(shè)置了props的原因,所以可以通過簡單的設(shè)置調(diào)整時鐘的大小和顏色風(fēng)格

      三步教你編寫一個Neumorphism風(fēng)格的小時鐘

      color為#bec8e4

      現(xiàn)在的時鐘樣式:

      完整組件代碼

      JavaScript Vue web前端 開發(fā)者

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:俄羅斯方塊源碼分享 html+css+js
      下一篇:RocketMQ實戰(zhàn):生產(chǎn)環(huán)境中,autoCreateTopicEnable為什么不能設(shè)置為true
      相關(guān)文章
      亚洲国产中文字幕在线观看| 亚洲欧洲日本国产| 亚洲已满18点击进入在线观看| 亚洲国产精品一区二区久久| 亚洲国产精品成人精品无码区| 亚洲精品无码乱码成人| 亚洲人成人77777网站| 久久精品国产精品亚洲人人 | 亚洲综合色在线观看亚洲| 风间由美在线亚洲一区| 日韩色日韩视频亚洲网站| 老司机亚洲精品影院在线观看| 国产偷国产偷亚洲清高APP| 国产成人综合亚洲| 亚洲国产成人精品无码久久久久久综合| 亚洲AV无码片一区二区三区| 国产区图片区小说区亚洲区| 国产亚洲精品欧洲在线观看| 自拍偷自拍亚洲精品偷一| 亚洲AV无码一区二三区| 中文字幕不卡亚洲 | 亚洲人成中文字幕在线观看| 亚洲成色在线综合网站| 亚洲国产一区国产亚洲 | 亚洲第一网站男人都懂| 亚洲日韩在线观看免费视频| 中文亚洲AV片在线观看不卡| 亚洲精品制服丝袜四区| 亚洲va在线va天堂va不卡下载| 亚洲男人的天堂在线播放| 亚洲欧洲精品一区二区三区| 亚洲香蕉久久一区二区三区四区| 亚洲精品人成网在线播放影院| 亚洲国产精品日韩av不卡在线| xvideos亚洲永久网址| 最新亚洲成av人免费看| 亚洲爆乳无码专区| 亚洲理论在线观看| 在线观看亚洲AV日韩AV| 亚洲国产精品无码久久青草| 国产精品亚洲片在线|