当我的sidenav打开时,我想改变身体的不透明度。
它完美地工作!但是现在我面临的问题是,我的图像无法获得这种效果,它们仍然像以前一样明亮。
如何更改图像和其他所有内容(例如iframe内容)是否具有相同的效果?

这是身体不透明的工作代码:

function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
    document.body.style.backgroundColor = "rgba(0,0,0,0.6)";
}


问候

最佳答案

尝试

function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
    document.body.style.opacity = "0.6";
}




编辑:
如果您的结构如下,这实际上可能是一个问题:

<body>
   <!-- some content -->
   <div id="mySidenav">
         <!-- sidebar content -->
   </div>
</body>


如果是这样,则上述功能将使您体内的所有物体(包括侧边栏)变为半透明。

因此,我将尝试将您所有的内容包装在一个单独的div中,作为包装并使其不透明:

<body>
   <div id="wrap">
        <!-- original body content -->
   </div>
   <div id="mySidenav">
         <!-- sidebar content -->
   </div>
</body>


并更新JS函数以反映这种变化:

function openNav() {
    document.getElementById("mySidenav").style.width = "250px";
    document.getElementById("wrap").style.opacity = "0.6";
}


另外-如果您有一些依赖body的css,则可能会有些破损,因此您可能还必须尝试一下。

关于javascript - 打开sidenav时体内图像的不透明度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41129649/

10-15 19:04