javascript - 设置计算样式(无法在“CSSStyleDeclaration”上执行“setProperty”:这些样式已计算)
问题描述
对于背景,我正在尝试在我的网站上创建暗模式。我希望用户能够单击翻转网站颜色的按钮。到目前为止,我已经拼凑了这个 javascript 片段
var style = getComputedStyle(document.body);
function darkMode() {
if (style.getPropertyValue('--text-white') === "rgb(254, 254, 254)") {
style.setProperty('--text-white', "rgb(43, 42, 42)");
style.setProperty('--text-black', "rgb(254, 254, 254)");
} else {
style.setProperty('--text-white', "rgb(254, 254, 254)");
style.setProperty('--text-black', "rgb(43, 42, 42)");
}
}
我的目标是更新 :root 下的 css 文件中的变量
:root {
--text-white: rgb(254, 254, 254);
--text-black: rgb(43, 42, 42);
}
style.getPropertyValue
能够返回正确的值但是当我尝试运行我得到的其余代码时
(索引):191 未捕获的 DOMException:无法在“CSSStyleDeclaration”上执行“setProperty”:这些样式是计算出来的,因此“--text-white”属性是只读的。
关于如何继续前进的任何提示?
解决方案
推荐阅读
- javascript - 在ejs模板中使用嵌入式js加载静态文本文件
- json - 如何用 swift 4 解码这个 JSON
- python - 在 Mac OS 10.13.15 上安装 MySQL-python 导致命令“clang”失败,退出状态为 1
- http - apache 上的 Http 到 nginx 上的 https
- javascript - 删除类时CSS过渡不起作用
- swift - 是否有任何特定资源可以演示在 Swift 中可以推断出哪些值?
- javascript - vuejs - 如何添加 vue-material 主题
- php - 如何使用 codeigniter 获取行
- node-red - 向 IBM Watson IoT Platform Cloud 请求存储的数据
- python - 计算太阳角度代码