jquery 切换和透明 PNG

发布于 2024-08-29 06:47:21 字数 163 浏览 5 评论 0原文

我有一个 jquery 开关,可以动画并显示 DIV。我有一个透明的 PNG、投影类型背景图像,当它第一次出现时,我看到一个黑色背景,然后一旦图像加载它就消失了......

有没有办法解决这个问题?这是一个错误吗?我让它的动画速度很慢,所以也许这与它有关。

我应该让它显示()吗?

I have a jquery toggle that animates and displays a DIV. I have a transparent PNG, drop shadow type background image, and when it first appears, I see a black background then it disappears once the image loads...

is there a way around that? is that a bug? I have it animating slow, so maybe that has something to do with it.

should I just make it show()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久光 2024-09-05 06:47:21

这是 IE 中的一个错误。

当前版本的 IE 不支持 opacity CSS 属性,因此 jQuery 使用 Alpha 过滤器。但是,滤镜会强制元素完全不透明,因此它们无法正确处理透明 PNG。

要在半透明元素中使用透明 PNG,需要使用 AlphaImageLoader 过滤器应用 PNG(即使在 IE8 中也是如此)。例如:(

if ($.browser.msie)
    $(something).css({
        background: 'none',
        filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/Folder/Image.png", sizingMethod="scale"),alpha(opacity=100)'
    });

此代码有效;我现在正在使用它)

This is a bug in IE.

No current version of IE supports the opacity CSS proeprty, so jQuery uses the Alpha filter instead. However, filters force the element to be fully opaque, so they don't work orrectly with transparent PNGs.

To use transparent PNGs in semi-transparent elements, the PNGs need to be applied using the AlphaImageLoader filter (even in IE8). For example:

if ($.browser.msie)
    $(something).css({
        background: 'none',
        filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/Folder/Image.png", sizingMethod="scale"),alpha(opacity=100)'
    });

(This code works; I'm using it right now)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文