javascript - 更改按钮 css javascript 的背景透明度

标签 javascript html css colors transparency

我是新来的,我有一个可能很简单的问题,但我在谷歌搜索了一段时间后找不到答案。

我的浏览器游戏中有一些按钮是绿色的,带有白色文本。当我将鼠标悬停在它们上方时,我使用 CSS 更改了 rgba,绿色变得更加透明:

#oneOfTheButtons:hover {
  background: rgba(76, 175, 80, 0.7) !important;
}

白色文本保持不变。如果玩家升级,我还有一些 Javascript 会改变颜色:

document.getElementById("oneOfTheButtons").style.background = "rgba(77, 173, 173, 1)";

然后按钮是蓝色的。但问题是悬停仍然使它们变成透明的绿色,但我希望它们是透明的蓝色。我还有 20 个不同颜色的关卡。

有什么简单的解决方法吗?

最佳答案

这可以通过许多不同的方式完成,但您可以使用 css variables 来完成像这样:

let green = true;
function toggleColor() {
  if (green) {
    document.body.style.setProperty('--button-bg-color', '77, 173, 173');
  } else {
    document.body.style.setProperty('--button-bg-color', '76, 175, 80');
  }
  green = !green;
}
:root {
  --button-bg-color: 76, 175, 80;
}

button {
  background: rgba(var(--button-bg-color), 1);
}

button:hover {
  background: rgba(var(--button-bg-color), 0.7);
}
<button onclick="toggleColor()">Toggle hover color!</button>

关于javascript - 更改按钮 css javascript 的背景透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192597/

相关文章:

html - 使用 'float:right’ 或 'float:left' 时,将 css 高度设置为 100% 不起作用

html - 在 CSS 中显示来自十个图标图像的单个图标,它们也必须缩放?

jquery - 通过从中心水平扩展来显示搜索框,同时提交按钮滑动以进行补偿

javascript - 火狐浏览器 JavaScript 兼容性

javascript - react native ,单击按钮时加载组件

javascript - 需要来自 html 中的 javascript 函数的信息

javascript - LightBox2 隐藏在 HTML iFrame 后面

javascript - 等高和媒体查询

javascript - 如何使用 ClassName 将条目添加到 DIV

javascript - 使用 JavaScript 模拟 Shift+Esc 组合