我可以使用CSS backgroundImage线性梯度来改变javascript中按钮的颜色,但当我使用相同的技术试图将其重置回原来的状态时,它不起作用。
我遗漏了什么?
var darkened=false;
function toggle() {
if (darkened) {
console.log("lightening button");
document.getElementById("scrollbutton").style.backgroundImage = "linear-gradient(rgb(222, 222, 222), rgb(255, 255, 255));";
} else {
console.log("darkening button");
document.getElementById("scrollbutton").style.backgroundImage = "linear-gradient(rgb(99, 99, 99), rgb(166, 166, 166))";
}
darkened = ! darkened;
}<html>
<body>
<button style="background-image: linear-gradient(rgb(222, 222, 222),rgb(255, 255, 255));" id="scrollbutton" onclick="toggle();"> pressme</button>
</body></html>
发布于 2020-09-13 17:48:42
,您不必在做css函数(如线性梯度)之后放置分号。
因为,javascript假定它是它的语句的分号,并在那里结束代码。
var darkened=false;
function toggle() {
if (darkened) {
console.log("lightening button");
document.getElementById("scrollbutton").style.backgroundImage = "linear-gradient(rgb(222, 222, 222), rgb(255, 255, 255))";
} else {
console.log("darkening button");
document.getElementById("scrollbutton").style.backgroundImage = "linear-gradient(rgb(99, 99, 99), rgb(166, 166, 166))";
}
darkened = ! darkened;
}<html>
<body>
<button style="background-image: linear-gradient(rgb(222, 222, 222),rgb(255, 255, 255));" id="scrollbutton" onclick="toggle();"> pressme</button>
</body></html>
发布于 2020-09-13 17:48:52
您可能不需要定义变量并更改内联样式。您可以使用classList.toggle和单独的样式,并将它们添加到新类中。
function toggle() {
document.getElementById("scrollbutton").classList.toggle('darkening');
}.lightening {
background-image: linear-gradient(rgb(222, 222, 222), rgb(255, 255, 255));
}
.darkening {
background-image: linear-gradient(rgb(99, 99, 99), rgb(166, 166, 166))
}<button class="lightening" id="scrollbutton" onclick="toggle();"> pressme</button>
https://stackoverflow.com/questions/63873761
复制相似问题