我想要将主体不透明度改为0.5,除了选择了'dd‘的聚焦区域。在骨干网中使用coffeescript;
我尝试并搜索了一些示例;主体发生了变化,但不是'dd‘。
我的代码是:
@$el is selected dd
...
showhide:->
$('body').css({opacity:0.5});
@$el.css({opacity:1});
...发布于 2013-07-20 01:46:41
你想做的事不会奏效。如果我们看一看opacity specs,我们就会明白为什么不:
3.2。透明度:‘opacity’属性
不透明度可以看作是一种后处理操作。从概念上讲,在将元素(包括其后代)呈现到RGBA屏幕外图像中之后,不透明度设置将指定如何将屏幕外呈现混合到当前复合呈现中。
..。
如果对象是容器元素,则效果就像是使用掩码将容器元素的内容与当前背景混合在一起,其中掩码的每个像素的值都是<alphavalue>。
因此,如果将<body>的不透明度设定为0.5,则浏览器将渲染所有<body> (包括其子对象,因此也包括@$el),然后将其合成到alpha通道值为0.5的浏览器窗口上。结果是整个页面将以半透明的方式呈现。在<body>中改变一些东西的不透明度并不重要,因为孩子的不透明度将在孩子渲染到<body>时应用,然后<body>的不透明度将在那之后应用。
考虑这个纯HTML/CSS示例:
<div id="outer">
<div id="inner"></div>
</div>和
#outer {
/* ... */
opacity: 0.5;
}
#inner {
/* ... */
opacity: 1.0;
}整个东西看起来是半透明的,因为#inner不透明度实际上是“相对于其父对象的不透明度”,而不是“相对于浏览器窗口的不透明度”。
演示:http://jsfiddle.net/ambiguous/WtAvx/
你将不得不改变你的方法。例如,您可以将opacity: 0.5元素定位在@$el和<body>之间,结构如下:
<div id="outer"></div>
<div id="inner"></div>和:
#outer {
/* ... */
position: absolute;
top: 0;
left: 0;
opacity: 0.5;
}
#inner {
/* ... */
position: absolute;
top: 50px;
left: 50px;
opacity: 1.0; /* You don't really need this */
}演示:http://jsfiddle.net/ambiguous/Jsd7q/
您可能不得不使用stacking order,并在您的元素和<body>之间插入一个带有opacity: 0.5的绝对定位的<div>,但我不能再多说了,给出您问题中的少量细节。
发布于 2013-07-20 01:59:14
为什么不使用
body
{
background-color:rgba(val,val,val,0.5);//val:0-255
}并根据需要设置所选dd的不透明度。
发布于 2013-07-19 18:19:19
尝试以下代码:
$('body *').not('textarea:focus').css({opacity:'0.5'});https://stackoverflow.com/questions/17743643
复制相似问题