AI-摘要
Error_0x03F7 Claude 3.5 Sonnet
初始化 AI 中...
介紹自己 👋
生成本文摘要 🖋️
推薦相關文章 📖
回到網站主頁 🏠
前往愛發電購買
步驟
1. 在 themes\[主題]\source\js
下手動新建一個 custom
資料夾,裡面創 digit-clock.js
,JS 裡打上以下程式碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| var _time10 = Array.from(Array(10)).map((n, i) => i);
var _time6 = _time10.slice(0, 6);
var _time3 = _time10.slice(0, 3);
var _Structure = [ [_time3, _time10], [_time6, _time10], [_time6, _time10] ];
var clock = document.createElement('div'); clock.id = 'clock';
document.getElementById("digit-clock").appendChild(clock);
var digitGroups = [];
requestAnimationFrame(update);
_Structure.forEach(digits => { var digitGroup = document.createElement('div'); digitGroup.classList.add('digit-group'); clock.appendChild(digitGroup); digitGroups.push(digitGroup); digits.forEach(digitList => { var digit = document.createElement('div'); digit.classList.add('digit'); digitList.forEach(n => { var ele = document.createElement('div'); ele.classList.add('digit-number'); ele.innerText = n; digit.appendChild(ele); }); digitGroup.appendChild(digit); }); });
function update() { requestAnimationFrame(update); var date = new Date(); var time = [date.getHours(), date.getMinutes(), date.getSeconds()]. map(n => `0${n}`.slice(-2).split('').map(e => +e)). reduce((p, n) => p.concat(n), []); time.forEach((n, i) => { var digit = digitGroups[Math.floor(i * 0.5)].children[i % 2].children; Array.from(digit).forEach((e, i2) => e.classList[i2 === n ? 'add' : 'remove']('bright')); }); }
|
2. 接著來幫時鐘設計一下樣式。到 themes\[主題]\source\css
下一樣手動新建一個 custom
資料夾,新增個 digit-clock.css
,在其中打上下面的程式碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #digit-clock { display: flex; justify-content: center; align-items: center; } #clock { font-size: 10px; position: relative; } .digit-group { display: inline-block; } .digit-group:not(:last-child):after { color: inherit; content: ":"; font-size: 50px; } .digit { display: inline-block; width: 33px; } .digit .digit-number { color: inherit; transform: rotate(-90deg); transition: font-size 200ms,transform 350ms,color 150ms; } .digit .digit-number.bright { color: inherit; font-size: 25px; transform: rotate(0deg); }
|
3. 最後,為了讓時鐘能顯示在側邊欄,需要設定一個新的數據配置文件。
到 blog\source\_data
下創建一個 widget.yml
,其中加上以下程式碼。
1 2 3 4 5 6 7
| top: - class_name: card-clock id_name: name: icon: order: html: <div id="digit-clock"></div><script defer async data-pjax src="/js/custom/digit-clock.js"></script>
|
5. 別忘了引入剛寫的 CSS。到 themes\[主題]\source\css\index.styl
裡在隨便一行加上以下程式碼,這樣寫好的時鐘就吃的到樣式了。
6. 有料。
…
大概是又開始熬夜的關係,下班腦袋昏昏的,想說怎麼寫完時鐘長下面這樣... 搞了好幾天才意識到沒引入 CSS...