【问题标题】:opacity 0.5 except this dd不透明度 0.5 除了这个 dd
【发布时间】:2013-07-18 14:16:27
【问题描述】:

我想将主体不透明度更改为 0.5,但选择了“dd”的焦点区域除外。 在主干中使用咖啡脚本;

我尝试并搜索了示例; 身体改变但不是“dd”。

我的代码是:

@$el is selected dd

...

showhide:->
    $('body').css({opacity:0.5});
    @$el.css({opacity:1});

...

【问题讨论】:

    标签: jquery css backbone.js coffeescript opacity


    【解决方案1】:

    您尝试执行的操作将行不通。如果我们看看opacity specs,我们就会明白为什么不这样做:

    3.2.透明度:“不透明度”属性

    不透明度可以被认为是一种后处理操作。从概念上讲,在将元素(包括其后代)渲染为 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/

    你将不得不改变你的方法。例如,您可以在 @$el&lt;body&gt; 之间放置一个 opacity: 0.5 元素,其结构如下:

    <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 并在您的元素和&lt;body&gt; 之间插入一个绝对定位的&lt;div&gt;opacity: 0.5,但我不能再说什么了,在您的问题中给出的细节很少。

    【讨论】:

      【解决方案2】:

      为什么不使用

      body
      {
         background-color:rgba(val,val,val,0.5);//val:0-255
      }
      

      并根据需要设置所选 dd 的不透明度。

      【讨论】:

        【解决方案3】:

        试试这个代码:

        $('body *').not('textarea:focus').css({opacity:'0.5'});
        

        【讨论】:

        • 加上引号?
        猜你喜欢
        • 2014-09-04
        • 1970-01-01
        • 2018-01-23
        • 1970-01-01
        • 2012-06-02
        • 2023-04-03
        • 2012-07-06
        • 2011-11-12
        • 1970-01-01
        相关资源
        最近更新 更多