使用jQuery更改CSS变量
是否可以使用jQuery更改CSS中使用的变量? 简单的例子:
html { --defaultColor: teal; } .box { background: var(--defaultColor); width: 100px; height: 100px; margin: 5px; float: left; } .circle { background: #eee; border: 2px solid var(--defaultColor); width: 100px; height: 100px; margin: 5px; float: left; border-radius: 100%; }
例如,如何将变量颜色从蓝绿色更改为红色? 这个不起作用。
$("#clickToChange").click(function(){ $(html).css("--defaultColor", "red"); });
您可以使用纯JavaScript elem.style.setProperty("variableName", "variableProp");
更改css变量elem.style.setProperty("variableName", "variableProp");
$("html").on('click', function() { $("body").get(0).style.setProperty("--color", "hotpink"); });
body { --color: blue; background-color: var(--color); }
click me!
最简单的解决方案恕我直言:更改一个类,然后更改默认颜色:
html { --defaultColor: teal; } html.someOtherDefaultColor { --defaultColor: rebeccapurple; } $("#clickToChange").click(function(){ $(html).toggleClass("someOtherDefaultColor"); });
请参阅问题通过JavaScript或jQuery设置CSS自定义属性(也称为CSS变量)
有问题的方法是document.body.style.setProperty($property, value);
其中$ property是CSS变量。