mirror of
https://github.com/spark-store-project/spark-store-abyss
synced 2026-04-27 23:20:19 +08:00
feat: 优化暗黑模式切换逻辑,添加初始化脚本
This commit is contained in:
19
app.vue
19
app.vue
@@ -120,8 +120,15 @@ onMounted(() => {
|
|||||||
if (savedDarkMode) {
|
if (savedDarkMode) {
|
||||||
sDarkConfig.value = savedDarkMode;
|
sDarkConfig.value = savedDarkMode;
|
||||||
}
|
}
|
||||||
watchEffect(async () => {
|
watch(
|
||||||
const sDarkValue = sDark.value;
|
sDark,
|
||||||
|
async (newValue, oldValue) => {
|
||||||
|
console.log("Dark mode changed:", newValue, oldValue);
|
||||||
|
const sDarkValue = newValue;
|
||||||
|
|
||||||
|
if (oldValue === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!enableTransitions()) {
|
if (!enableTransitions()) {
|
||||||
document.documentElement.classList.toggle("s-dark", sDarkValue);
|
document.documentElement.classList.toggle("s-dark", sDarkValue);
|
||||||
@@ -146,10 +153,14 @@ onMounted(() => {
|
|||||||
{
|
{
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: "ease-in",
|
easing: "ease-in",
|
||||||
pseudoElement: `::view-transition-${sDarkValue ? "old" : "new"}(root)`,
|
pseudoElement: `::view-transition-${
|
||||||
|
sDarkValue ? "old" : "new"
|
||||||
|
}(root)`,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ export default defineNuxtConfig({
|
|||||||
href: "/icon/spark.svg",
|
href: "/icon/spark.svg",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
script: [
|
||||||
|
{
|
||||||
|
src: "/init_dark.js",
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
|
|||||||
12
public/init_dark.js
Normal file
12
public/init_dark.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
||||||
|
const darkMode = localStorage.getItem("darkMode");
|
||||||
|
const sDarkValue =
|
||||||
|
darkMode === "auto"
|
||||||
|
? isDarkMode
|
||||||
|
? true
|
||||||
|
: false
|
||||||
|
: darkMode === "dark"
|
||||||
|
? true
|
||||||
|
: false;
|
||||||
|
|
||||||
|
document.documentElement.classList.toggle("s-dark", sDarkValue);
|
||||||
Reference in New Issue
Block a user