thumbnail |
目標 Common
- 利用第三方library實現Dark Theme深色主題,不用另外寫深色主題的CSS
- 將使用者設定的主題儲存在其local本地端,方便使用者後續瀏覽Blogger,不用每次切換Blogger網頁還要更改一次主題設定
- 缺點是可能有部分iframe的部落格插件會無法改變CSS樣式
- FB及Blogger留言板
- Blogger訂閱/追蹤者
沒有套用主題的插件/元件 |
本網站環境
- Google Blogger
- Botstrap:4.6.0
- jQuery:3.6.0
- Font Awesome:4.7.0
HTML
將該元件加到網頁中適當的位置,不同的位置其相對應的CSS也會不同,請自行修改CSS
<div class='ind-darkmode'> <input class='ind-check' id='ind-darkmode' title='Mode Dark' type='checkbox' /> <label class='ind-icon' for='ind-darkmode'> <i class="ind-openmode fa fa-moon-o" aria-hidden="true"> 深色模式</i> <i class="ind-closemode fa fa-sun-o" aria-hidden="true"> 普通模式</i> </label> </div>
CSS
請自行調整CSS以適配自己的網站
若網頁有RWD,還需考量不同尺寸的螢幕,其CSS的配置方式
若網頁有RWD,還需考量不同尺寸的螢幕,其CSS的配置方式
記得撰寫完成後,再壓縮一下,https://www.toptal.com/developers/cssminifier 🔗
將這段程式放在網頁的<head></head>中
/* Button Dark Mode */ .ind-darkmode i { color: #fff; font-size: 22px }
.ind-icon { cursor: pointer; display: block; padding: 8px; background-position: center; transition: .5s linear } .ind-icon:hover i { color: #ef476f } .ind-check, .ind-darkmode .ind-check:checked~.ind-icon .ind-openmode, .ind-darkmode .ind-icon .ind-closemode { display: none } .ind-darkmode .ind-check:checked~.ind-icon .ind-closemode, .ind-darkmode .ind-icon .ind-openmode { display: block }
JavaScript
利用LocalStorage將使用者設定的主題儲存在其local本地端
方便使用者後續瀏覽Blogger,不用每次切換Blogger網頁還要更改一次主題設定
記得撰寫完成後,再壓縮一下,https://www.toptal.com/developers/javascript-minifier 🔗
將這段程式放在網頁的</body>前
各種網頁暫存方式,圖片來源 🔗 |
$(document).ready(function() { $("#ind-darkmode").on("click", function() { "nightmode" != localStorage.toggled ? (DarkReader.setFetchMethod(window.fetch), DarkReader.enable(), localStorage.toggled = "nightmode") : (DarkReader.disable(), localStorage.toggled = "") }), "nightmode" != localStorage.toggled ? (DarkReader.disable(), $("#ind-darkmode").prop("checked", 0)) : (DarkReader.setFetchMethod(window.fetch), DarkReader.enable(), $("#ind-darkmode").prop("checked", 1)) })
結果 Results
本站Blogger模板:Blog Platform 2.2.1 🔗
電腦版 |
手機版 |
目前遇到的問題 Problems
雖然網頁主控台有錯誤訊息,但目前並不影響使用者操作
TypeError: Failed to fetch
沒有留言:
張貼留言