使用jQuery更改CSS变量

t4d*_*4d_ 17 css variables jquery

是否可以使用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%;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="clickToChange" type="button" style="width: 100%;">Click to Change</button>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<br/>
<div class="circle"></div>
<div class="circle"></div>
<div class="circle"></div>
Run Code Online (Sandbox Code Playgroud)

例如,如何将变量颜色从青色更改为红色?这个不起作用.

$("#clickToChange").click(function(){
  $(html).css("--defaultColor", "red");
});
Run Code Online (Sandbox Code Playgroud)

Mat*_*iMu 25

您可以使用纯JavaScript更改css变量 elem.style.setProperty("variableName", "variableProp");

$("html").on('click', function() {
  
  $("body").get(0).style.setProperty("--color", "hotpink");
  
});
Run Code Online (Sandbox Code Playgroud)
body {
  --color: blue;
  background-color: var(--color);
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

click me!
Run Code Online (Sandbox Code Playgroud)

  • 在jquery中,你可以这样做:$("html").attr("style"," - defaultColor:hotpink"); (9认同)