【问题标题】:adding opacity to page为页面添加不透明度
【发布时间】:2016-10-07 15:39:00
【问题描述】:

我有一个带有背景图像和六个块links 的页面,所有这些都包含在<div id = "main"> 中。我还有一个side navbar,点击时会将内容推送到右侧。
我还想为#main 添加一些不透明度,但我被卡住了。
下面是我的Side Navbar 的 javascript 代码,我在其中尝试更改背景颜色,我知道这显然是错误的。有没有办法为整个页面添加不透明度?

document.getElementById("myBtn").addEventListener("click", toggleNav);

function toggleNav(){
    navSize = document.getElementById("mySidenav").style.width;
    if (navSize === "400px") {
        return close();
    }
    return open();
}
function open() {
        document.getElementById("mySidenav").style.width = "400px";
        document.getElementById("main").style.marginLeft = "400px";
        document.getElementById("main").style.backgroundColor = "yellow";
}
function close() {
        document.getElementById("mySidenav").style.width = "0";
        document.getElementById("main").style.marginLeft = "0";
        document.getElementById("main").style.backgroundColor = "white";
}

【问题讨论】:

  • 您应该发布您的 HTML,以便我们了解您实际使用的内容

标签: javascript html css opacity


【解决方案1】:

您并没有完全错,您必须使用rgba() 或RGBA 的十六进制表示法。您可以在here 上阅读更多相关信息。 你可以在你的项目中使用它, document.getElementById("main").style.background = "rgba(0,0,0,0.4)";
上面的代码会将background 设置为black,将opacity 设置为0.4

或者如果你只是想切换不透明度那么你必须设置opacity css 属性,如下

document.getElementById("main").style.opacity = 0.4
其中0.4 是不透明度值。它的范围从 0 到 1,其中 1 表示完全可见,0 表示完全隐藏。你可以阅读更多MDN

【讨论】:

  • 谢谢你,它成功了,但我有两个问题。我认为不透明度为 1 意味着它完全不透明,但是当我设置 style.opacity =1 时,它实际上是完全透明的。另外,有没有办法定义不透明度的颜色?使用我当前的代码 document.getElementById("main").style.opacity = 0.4;不透明度颜色看起来是白色的,但理想情况下我想要黑色的不透明度。谢谢!
  • @Dave,那么你应该 rgba() 应用带有 Alpha 通道(即不透明度)的颜色。设置backgroun-color: rgba(0,0,0,0.4)0.4 是不透明度因子。关于设置不透明度 1 让您完全透明,将在此处尽快检查并通知您。
  • 嘿,我的错,我把 0-1 的不透明度读错了。你上面的定义是对的。所以我尝试了 rgba 方法,但它对我不起作用。我使用了代码 document.getElementById("main").style.opacity = rgba(0,0,0,0.4);但它实际上根本无法识别不透明度。
  • @Dave, rgba() 用于设置色域。在您的情况下,您必须设置 document.getElementById("footer").style.background = "rgba(0,0,0,0.4)";
  • 我一开始就试过了,但是没有用。我认为它不起作用,因为我有一个占据整个页面的背景图像,因此看不到背景颜色。这几乎就像我想要在我的图像顶部有一个半透明的黑色覆盖。无论如何,这并不重要,只是好奇如何做到这一点。谢谢!
猜你喜欢
  • 2011-09-16
  • 2023-03-11
  • 2013-03-28
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多