我目前正在try 通过使用函数changeBackgrondColor()更改页面配色方案的my:Root变量,并将其赋给我的FontAwese月球"按钮".然而,当我点击月亮时,页面会在一秒钟内改变所有的 colored颜色 ,然后又回到原来的形式.

var r = document.querySelector(':root');
var rootStyles = getComputedStyle(r);
function changeBackgroundColor(){
    r.style.setProperty('--clr-1', 'blue');
    r.style.setProperty('--clr-2', 'blue');
    r.style.setProperty('--clr-3', 'blue');
    r.style.setProperty('--clr-4', 'blue');
}

推荐答案

通常将类theme-dark设置为body个元素,并使用可验证的css来表示 colored颜色 :

.theme-dark{
  --body-bg:#333;
  --color:#aaa;
  --input-bg: #555;
}
body{
  background-color: var(--body-bg);
  color: var(--color);
}

input, button{
  color: var(--color);
  background-color: var(--input-bg);
}
<input><button onclick="document.body.classList.toggle('theme-dark')">Toggle dark theme</button>

Javascript相关问答推荐

当promise 在拒绝处理程序被锁定之前被拒绝时,为什么我们会得到未捕获的错误?

提交表格后保留Web表格中的收件箱值?

我不知道为什么setwritten包装promise 不能像我预期的那样工作

React 17与React 18中的不同setState行为

React Code不在装载上渲染数据,但在渲染上工作

如何禁用附加图标点击的v—自动完成事件

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

构造HTML表单以使用表单数据创建对象数组

Chart.js 4.4.2,当悬停在一个数据点上时,如何在工具提示中拥有多个数据点/标签?

你怎么看啦啦队的回应?

如何调用名称在字符串中的实例方法?

如何将Cookie从服务器发送到用户浏览器

我在Django中的视图中遇到多值键错误

Rxjs流中生成IMMER不能在对象上操作

Phaserjs-创建带有层纹理的精灵层以自定义外观

在表单集中保存更改时删除';禁用';

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

将Singleton实例设置为未定义后的Angular 变量引用持久性行为

在对象的嵌套数组中添加两个属性

打字脚本中的函数包装键入