有谁能给予我一个简单的方法,用Javascript在HTML页面上创建一个darkMode和lightMode吗?[已关闭]

zour9fqk  于 2022-12-09  发布在  Java
关注(0)|答案(2)|浏览(140)

已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

2天前关闭。
Improve this question
我想做一个网站,但我有麻烦,使一个黑暗/光明的主题使用JS。有人知道一个简单的方法来使一个黑暗/光明的主题?

  • 我的想法是获取具有特定样式的元素并更改其CSS颜色属性。

我试过使用document.getElementsByClassName(),但是它太麻烦了,而且效率很低。

7vux5j2d

7vux5j2d1#

使用custom properties定义颜色。
(You将需要比本示例更多的颜色)

body {
    --main-bg-color: yellow;
    --main-fg-color: black;
}

然后在暗模式样式表中覆盖它们:

@media (prefers-color-scheme: dark) {
    body {
        --main-bg-color: black;
        --main-fg-color: yellow;
    }
}

然后,如果您希望用户能够切换到您自己的UI以及使用他们的系统范围选择,请使用类再次定义它们:

body.lightMode {
    --main-bg-color: yellow;
    --main-fg-color: black;
}

body.darkMode {
    --main-bg-color: black;
    --main-fg-color: yellow;
}

然后在需要颜色名称时使用这些变量:

h1 {
    color: --main-bg-color;
}

如果希望UI更改样式,请执行以下操作:

function eventHandler() {
    const b = document.body;
    if (b.classList.contains("darkMode")) {
         b.classList.remove("darkMode");
         b.classList.add("lightMode");
    } else {
         b.classList.remove("lightMode");
         b.classList.add("darkMode");
    }
};
zi8p0yeb

zi8p0yeb2#

我想你可能有一个标题,其中列出了一个开关按钮,以切换黑暗和光明模式。标题应该因此显示在您的网站的每一个路线。
假设您的切换按钮如下所示:
于飞:

<button> (click)="changeAmbientColor()" </button>

JS:

changeAmbientColor(event: any){
    let a = document.getElementsByTagName("body")
    if(a[0].style.backgroundColor == "Gray"){
      a[0].style.backgroundColor="white"
    } else {
      a[0].style.backgroundColor="gray"
    }
  }

我只写了你可能需要的最低限度。

相关问题