【问题标题】:jquery toggle and transparent PNGjquery切换和透明PNG
【发布时间】:2011-02-07 16:16:30
【问题描述】:

我有一个动画和显示 DIV 的 jquery 切换。我有一个透明的PNG,阴影类型的背景图片,当它第一次出现时,我看到一个黑色的背景,然后一旦图像加载它就会消失......

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

我应该让它显示()吗?

【问题讨论】:

    标签: jquery png transparent


    【解决方案1】:

    这是 IE 中的一个错误。

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

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

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

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

    【讨论】:

    • 请注意,即使那样,alphaimageloaderalpha 的组合与 opacity 的组合也不完全相同。每个像素的透明度似乎是max(image_opacity, filter_opacity) 而不是image_opacity*filter_opacity。 (这在动画中并不总是令人不快的效果。)
    • 我可以将它添加到我现有的 .js 文件中吗?当我这样做时,我得到一个错误“missng”);“......这是我所拥有的:$(document).ready(function(){$('#business-blue').hide(); $( 'a#biz-blue-lnk').click(function() { $('#business-blue').animate({opacity: 'toggle'}, 800); return false; }); });
    • @SLaks 看起来好像缺少 ' 刻度线...因为我收到错误消息...
    猜你喜欢
    • 2012-12-08
    • 1970-01-01
    • 2011-08-07
    • 2015-02-20
    • 1970-01-01
    • 2011-03-28
    • 2023-04-08
    • 2011-12-03
    • 2014-09-17
    相关资源
    最近更新 更多