代码之家  ›  专栏  ›  技术社区  ›  Loki Astari

来自javascript的CSS跨浏览器不透明度

  •  1
  • Loki Astari  · 技术社区  · 16 年前

    我想在用户执行操作时降低元素的不透明度。

    我现在的代码是:

    document.getElementById('MyOpaqueElement').style.opacity = 0.3;
    // There are checks in the real code for NULL, etc.
    

    这适用于Firefox、Safari等。IE8对不透明性有不同的看法。我已经阅读了几篇文章,但还没有找到一个最可移植的方法的明确答案,以跨浏览器的方式来实现这一点。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Pekka    16 年前

    您需要考虑各种浏览器特定的设置和注释。

    Quirksmode.org: CSS2 - Opacity

    我建议使用这样的框架 JQuery , Prototype , MooTools Dojo . 我知道刚开始添加几十千字节的代码只是为了一些不透明性,这看起来很荒谬,但它确实值得。它只是在 适用于所有浏览器。

        2
  •  3
  •   Sam Dufel    14 年前

    编辑-海报正在使用jquery..

    简单方法:

      $(el).css('opacity', '0.3');
    

    (我检查了jquery源,它自动处理不透明度以实现跨浏览器兼容性,因此应该可以工作)

    或者对于CSS解决方案: 只需给它一个类,例如“transparent”,并将其添加到CSS文件中:

    .transparent {
        filter: alpha(opacity=30); /* for IE */
        -khtml-opacity: 0.3;      /* khtml, old safari */
        -moz-opacity: 0.3;       /* old mozilla, netscape */
        opacity: 0.3;           /* good browsers: FF, safari, opera */
    }
    
        3
  •  1
  •   Gyuri    16 年前

    等效值应为 document.getElementById('MyOpaqueElement').style.filter = 'alpha(opacity=30)';

    顺便说一句,即使你不使用像yui或jquery这样的库,你也可以下载它们并在它们的源代码中搜索这个词。

    不透明性

    .

        4
  •  0
  •   Community Mohan Dere    9 年前

    可以通过jquery实现这一点。检查以下堆栈溢出日志:

    Jquery opacity change