我有一个 web 应用程序项目,它使用两个样式表来定义两个颜色集(白天和黑夜模式)。各样式表定义了相同的CSS变量具有不同颜色(例如,“ --primaryColor:‘白’”在dayMode.css和‘ --primaryColor:‘黑’ ’在nightMode.css。点击一个按钮时,样式表被触发。
现在,所有元素都通过引用这些变量来着色——在 CSS 和 JS 代码中。例如:
div {background-color: var(--primaryColor);}
$(this).css({backgroundColor: "var(--primaryColor)"});
Run Code Online (Sandbox Code Playgroud)
切换样式表时,所有元素都会调整为新定义。现在我设置了我的第一个 Chart.js 并尝试使用我的变量为它着色,例如:
yAxes: [{
ticks: {
fontColor: "var(--primaryTextColor)"
}
}]
Run Code Online (Sandbox Code Playgroud)
但这不起作用。知道如何解决这个问题吗?提前致谢!
bea*_*ver 16
CSS 变量在样式表中使用,如果你想在 JS 中访问它们,你可以像下面的代码片段那样做:
var style = getComputedStyle(document.body);
var primCol = style.getPropertyValue('--primaryColor');
$("#mydiv").text("primaryColor: " + primCol);Run Code Online (Sandbox Code Playgroud)
:root {
--primaryColor: #336699;
}
#mydiv {
background-color: var(--primaryColor);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">
</div>Run Code Online (Sandbox Code Playgroud)
所以在 chart.js 中:
var style = getComputedStyle(document.body);
var primCol = style.getPropertyValue('--primaryColor');
var chartCol = style.getPropertyValue('--chartColor');
var chartData = {
labels: ['a', 'b', 'c', 'd'],
datasets: [{
label: 'value',
backgroundColor: 'rgba(219, 20, 0, 0.2)',
borderColor: chartCol,
data: [30, 50, 25, 10]
}]
};
var ctx = document.getElementById("myChart").getContext("2d");
var myBar = new Chart(ctx, {
type: 'line',
data: chartData,
options: {
legend: { display: false },
scales: {
yAxes: [{
ticks: {
fontColor: primCol,
}
}],
xAxes: [{
ticks: {
beginAtZero: true
}
}],
}
}
});Run Code Online (Sandbox Code Playgroud)
:root {
--primaryColor: #00ff00;
--chartColor: #ff0000;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id="myChart" height="300" width="500"></canvas>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5279 次 |
| 最近记录: |