如何在下面的元素被动画化时强制 IE 继续对覆盖应用不透明度?

Posted

技术标签:

【中文标题】如何在下面的元素被动画化时强制 IE 继续对覆盖应用不透明度?【英文标题】:How can I force IE to keep applying opacity to an overlay while the element underneath is being animated? 【发布时间】:2012-01-11 21:26:27 【问题描述】:

我有一个包含叠加层的幻灯片(使用 jQuery Cycle)。叠加层使用 CSS 不透明度和过滤器。 jQuery 对动画也是如此。

在 IE 6/7/8 中,用于提供覆盖不透明度的过滤器在动画运行时失败并显示为灰色。

我认为问题在于 IE 不能同时使用两个过滤器。反正有这个吗?

所有代码都在 JSBin 上: http://jsbin.com/ucizox/6/edit

【问题讨论】:

为什么不直接使用透明 png 作为 .trans div 的背景图片? 谢谢你,约翰。我在使用不透明度的道路上走得很远,我没有考虑过使用透明图像。 我仍在为现代浏览器使用不透明度,并使用 star hack 将透明图像定位在 IE 6/7/8。 是的,我个人会坚持使用重复的透明图像。我不知道使用 opacity 的理由,除非你在某些东西上淡化 alpha。对我来说,这只是重复工作,当你想要不同的颜色/透明度时,你必须改变两个地方。 我在考虑页面性能和限制 HTTP 请求。该透明图像仅用于样式目的。如果我可以改用 CSS,我会每次都这样做。 【参考方案1】:

我曾经遇到过类似的问题,使用 jQuery 的 .fadeOut() 无法为我在 IE 中淡出的元素的子元素设置不透明度动画。 那时,我通过添加告诉子元素专门继承其父元素的 filter 属性的 css 解决了这个问题,例如:

fadeElement * 过滤器:继承;

【讨论】:

以上是关于如何在下面的元素被动画化时强制 IE 继续对覆盖应用不透明度?的主要内容,如果未能解决你的问题,请参考以下文章

同步 jQuery 背景和元素动画

如何从服务器端强制关闭 IE 兼容模式?

将元素的属性强制为某个值,即使它正在被动画化

如何在两个动画画布元素之间进行通信?

CSS样式中如何将下面的元素覆盖上面的元素?

有没有办法阻止内容可编辑的插入符号出现在 IE 10 中的元素上?