【问题标题】:jquery opacity cross browser?jquery不透明度跨浏览器?
【发布时间】:2011-06-07 06:18:21
【问题描述】:

jQuery('#selector').css({'opacity':50});是跨浏览器吗?

我问的唯一原因是因为下面我们通常在 css 上使用的行

-moz-opacity:.50; filter:alpha(opacity=50); opacity:.50;

【问题讨论】:

    标签: jquery cross-browser opacity


    【解决方案1】:

    这可能更好:

    $(element).fadeTo(0, 0.5);

    【讨论】:

    • css({opacity:50}) 并不总是有效,在 chrome 上它不会,但与 fadeTo 一起使用很好 :)
    • 这几乎不一样,因为这不仅以跨浏览器的方式设置不透明度,而且还设置了动画。在 CSS3 时代,由于 CSS 过渡,这可能不是我们所希望的。
    • @RobertKoritnik,在提出此类声明之前检查 API;这里的第一个参数意味着有 no 动画。另外,我不确定与转换有什么联系。没有人要求。此外,这显然是一年多前发布的,即便如此,考虑到某些市场不支持 CSS3,我不确定 CSS3 的时代。
    • 第一个参数是 0 是的,但是在声称这意味着没有动画之前,你应该检查 jQuery 代码,看看如果 speed 参数设置为 0 会执行多少代码。但你是对的这个问题的年龄和不相关的 CSS3 转换。我收回了。
    • @RobertKoritnik,你是对的,有开销,但这并不意味着有动画;它们是两个不同的东西。无论如何,就 CPU 时间而言,该代码量可以忽略不计。
    【解决方案2】:

    是的,它设置 css 不透明度或 IE 的不透明度过滤器。

    【讨论】:

      【解决方案3】:

      因为 jQuery 在设计时考虑了跨浏览器兼容性,只要浏览器支持 CSS opacity 标签,那么,是的,您的 jQuery 代码是跨浏览器的。 (你试过了吗?你可以去jsfiddle.net看看有没有。)

      如需更多信息,请联系W3Schools page on opacity。使用各种浏览器前往那里,看看它是否有效。 (看起来它适用于所有三种主要浏览器。)

      【讨论】:

      • 嗨,我知道这是一篇旧帖子,但我想补充一下,请不要信任或引用 W3Schools。见:w3fools.com
      • 100% 正确,@daiscog。我年轻而愚蠢。 (我现在屏蔽了 W3School 的结果。)事实上,正是这样纠正了我的错误方式。我现在更聪明了。 ;)
      猜你喜欢
      • 1970-01-01
      • 2013-02-14
      • 2011-05-22
      • 2011-09-12
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多