jquery - rgba() 在 IE8 中不工作

标签 jquery css internet-explorer

我只是坚持使用 IE 8 在 jQuery 中进行 RGBA() 操作

到目前为止我有这个:

$('.set').click(function (e) {
      var hiddenSection = $('div.hidden');
      hiddenSection.fadeIn()
      .css({ 'display': 'block' })
      .css({ width: $(window).width() + 'px', height: $(window).height() + 'px' })
      .css({ top: ($(window).height() - hiddenSection.height()) / 2 + 'px',
           left: ($(window).width() - hiddenSection.width()) / 2 + 'px'
       })
       .css({ 'background-color': 'rgba(0,0,0,0.5)' })  //Problem here in IE8
       .appendTo('body');
       $('span.close').click(function () { $(hiddenSection).fadeOut(); });
});

它在所有其他浏览器中都有效,不知道为什么它在 IE 8 中失败 我收到了这个错误!

Invalid property valuejquery.min.js 中。

非常感谢任何帮助!

谢谢

最佳答案

简单回答:IE8 不支持 RGBA 属性。它只知道 RGB。

RGBA 支持仅在 IE9 中添加。

其他非常老的浏览器可能也不支持 RGBA。然而,除了 IE8 之外,没有多少旧的浏览器仍在使用。

有一些方法可以解决这个问题:

  • 使用 CSS3Pie 等 polyfill。这将允许您在 CSS 中指定 RGBA 背景颜色。您仍然无法直接在 JS 代码中使用它,但您可以更改类来处理它。

  • 使用像 Modernizr 这样的工具来检测浏览器是否支持此功能,如果不支持则提供不同的功能。

  • 使用IE8的-ms-filter风格实现透明效果。这允许您设置一系列特殊效果,包括不透明度。这是一个非标准的 IE 特性,在 IE9/10 中被标准的 CSS 取代,但在某些情况下对于旧的 IE 版本仍然有用。

  • 改为使用带有 alpha channel 的小 PNG 图像作为背景。现在为纯色背景使用背景图片有点遗憾,但它会在所有浏览器中实现您想要的结果。

关于jquery - rgba() 在 IE8 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462590/

相关文章:

javascript - 为除特定 ul 之外的所有无序列表分配动画

html - 用选取框弹跳使文本不完全可见

javascript - jQuery 使用 chickedinner.js 从数组中加载随机图像,在 Chrome 中返回 'undefined'

javascript - 页面需要 2-3 分钟呈现会导致 javascript 'taking too long' 警告

javascript - 如何使用 jQuery 从字符串中获取 HTML 元素

javascript - Sidr 点击 Action Jquery

javascript - 如何在 jQuery 中的页面加载和 onclick 之后执行某些操作?

html - 屏幕不同侧的两个列表

javascript - 我收到错误 SCRIPT1003 : Expected ':' in IE 11; (Java Script Code error)

css - svg 无法在 ie9 中使用 css 调整大小