javascript - 将颜色从 CSS 传递到 Javascript

标签 javascript css

我将主题颜色定义为 CSS 文件中的变量。然后我想在 JavaScript 中使用相同的颜色(它从数据库中获取值并生成图表)。我不想在 JS 中再次指定颜色。我可以从 CSS 加载颜色列表吗?如果可以,如何加载?

CSS 文件:

/* http://www.colorhunt.co/c/43601 */
:root{
    --maincolor: #113f67;
    --secondcolor: #34699a;
    --thirdcolor: #408ab4;
    --fourthcolor: #65c6c4; 
}

最佳答案

将变量应用到正文,然后使用 getComputedStyle 读出样式

var bodyStyles = window.getCompulatedStyle(document.body);

这将返回一个在 body 上定义的所有样式的对象,现在您可以使用 getPropertyValue 来回溯它。

var varName = bodyStyles.getPropertyValue('--var-name');

其中 varName 现在包含您的变量,对所有颜色执行此操作:

var bodyStyles = window.getComputedStyle(document.body);
var colors = ['--maincolor', '--secondcolor', '--thirdcolor', '--fourthcolor'];
var colorValues = [];

for (var i = 0; i < colors.length; i++) {
    colorValues.push({'name': colors[i], 'hex': bodyStyles.getPropertyValue(colors[i])})
}

关于javascript - 将颜色从 CSS 传递到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845478/

相关文章:

javascript - DOM 准备好后 Jquery 未定义元素

javascript - jQuery .offset() 没有检索到正确的位置

javascript - Chart.js 饼图未显示在 Google Chrome Canvas 中

javascript - 如何使右箭头可点击,它应该模拟按下回车键

CSS 问题 - 内联 block 不起作用

javascript - 滚动时 float 导航栏宽度

javascript - 在下划线模板三元中打印变量

JavaScript 结构初始化

html - SCSS中自动计算旋转度数将多个元素从0度旋转到180度

css - 在 CSS 中使用 z-index 分层图像的问题