mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-04-16 19:50:55 +08:00
This commit is contained in:
@@ -1,47 +1,56 @@
|
||||
script.
|
||||
var activateDarkMode = function () {
|
||||
document.documentElement.setAttribute('data-theme', 'dark')
|
||||
if (document.querySelector('meta[name="theme-color"]') !== null) {
|
||||
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#000')
|
||||
}
|
||||
}
|
||||
var activateLightMode = function () {
|
||||
document.documentElement.setAttribute('data-theme', 'light')
|
||||
if (document.querySelector('meta[name="theme-color"]') !== null) {
|
||||
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#fff')
|
||||
}
|
||||
}
|
||||
|
||||
var getCookies = function (name) {
|
||||
const value = `; ${document.cookie}`
|
||||
const parts = value.split(`; ${name}=`)
|
||||
if (parts.length === 2) return parts.pop().split(';').shift()
|
||||
}
|
||||
|
||||
var autoChangeMode = '#{theme.darkmode.autoChangeMode}'
|
||||
var t = Cookies.get("theme")
|
||||
if (autoChangeMode == '1'){
|
||||
var isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches
|
||||
var isLightMode = window.matchMedia("(prefers-color-scheme: light)").matches
|
||||
var isNotSpecified = window.matchMedia("(prefers-color-scheme: no-preference)").matches
|
||||
var t = getCookies('theme')
|
||||
if (autoChangeMode === '1') {
|
||||
var isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
var isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
|
||||
var isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
|
||||
var hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
|
||||
|
||||
if (t === undefined){
|
||||
if (t === undefined) {
|
||||
if (isLightMode) activateLightMode()
|
||||
else if (isDarkMode) activateDarkMode()
|
||||
else if (isNotSpecified || hasNoSupport){
|
||||
else if (isNotSpecified || hasNoSupport) {
|
||||
console.log('You specified no preference for a color scheme or your browser does not support it. I Schedule dark mode during night time.')
|
||||
var now = new Date()
|
||||
var hour = now.getHours()
|
||||
var isNight = hour < 6 || hour >= 18
|
||||
var isNight = hour <= 6 || hour >= 18
|
||||
isNight ? activateDarkMode() : activateLightMode()
|
||||
}
|
||||
} else if (t == 'light') activateLightMode()
|
||||
}
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
|
||||
if (Cookies.get('theme') === undefined) {
|
||||
e.matches ? activateDarkMode() : activateLightMode()
|
||||
}
|
||||
})
|
||||
} else if (t === 'light') activateLightMode()
|
||||
else activateDarkMode()
|
||||
|
||||
} else if (autoChangeMode == '2'){
|
||||
now = new Date();
|
||||
hour = now.getHours();
|
||||
isNight = hour < 6 || hour >= 18
|
||||
if(t === undefined) isNight? activateDarkMode() : activateLightMode()
|
||||
} else if (autoChangeMode === '2') {
|
||||
now = new Date()
|
||||
hour = now.getHours()
|
||||
isNight = hour <= 6 || hour >= 18
|
||||
if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
|
||||
else if (t === 'light') activateLightMode()
|
||||
else activateDarkMode()
|
||||
else activateDarkMode()
|
||||
} else {
|
||||
if ( t == 'dark' ) activateDarkMode()
|
||||
else if ( t == 'light') activateLightMode()
|
||||
if (t === 'dark') activateDarkMode()
|
||||
else if (t === 'light') activateLightMode()
|
||||
}
|
||||
|
||||
function activateDarkMode(){
|
||||
document.documentElement.setAttribute('data-theme', 'dark')
|
||||
if (document.querySelector('meta[name="theme-color"]') !== null){
|
||||
document.querySelector('meta[name="theme-color"]').setAttribute('content','#000')
|
||||
}
|
||||
}
|
||||
function activateLightMode(){
|
||||
document.documentElement.setAttribute('data-theme', 'light')
|
||||
if (document.querySelector('meta[name="theme-color"]') !== null){
|
||||
document.querySelector('meta[name="theme-color"]').setAttribute('content','#fff')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user