代码之家  ›  专栏  ›  技术社区  ›  Drew Rich

IE7将滚动图像的边缘变黑

  •  1
  • Drew Rich  · 技术社区  · 14 年前

    我正在使用jquery脚本进行图像翻转,我在IE7中遇到了一个问题,只有当我的所有图像都正确加载时,但一旦翻转图像并展开,顶部图像的边缘就会变黑。有人知道这可能是什么原因吗?该网站可以在free-to-be-me.com/ask-ava.php上找到。

    下面是我使用的代码:

        $(function() {
            $(".bw").hover(function() {
                $(this).animate({ opacity: 0.0 }, 200);
            });
        });
    
        $(function() {
            $(".bw").mouseout(function() {
                $(this).animate({ opacity: 1.0 }, 200);
            });
    
    
    <div class='liner-nav'>
        <div class='container'>
             <a class='html' href='ava-lb/options.html' style='border:none;' rel='group'><img src='images/ava/School_pink.png' class='bw' style='border:none;' /></a>
             <img src='images/ava/School_blue.png' class='colour' alt='' />
        </div>
    </div>
    });
    

    事先谢谢你的帮助。

    编辑

    我在网上搜了好几个小时,尝试各种各样的黑客,试图阻止IE7把PNG搞得团团转。我得出的结论是,虽然IE7可以以最小的麻烦处理PNG,但它不能很好地处理不透明度的变化。所以我选择了直接图像交换,因为它实现了相同的事情。谢谢你的帮助。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Community Egal    7 年前

    IE的所有版本仍然存在PNG问题,PNG应用了不透明度设置。见 this SO question .

        2
  •  0
  •   Daniel Martin    14 年前

    我认为你的主要问题是这两张图片的大小略有不同——粉色的图片(当你翻滚时会出现)是249x89像素,而蓝色的图片(下面有什么)是257x97像素。

    结合IE的著名问题和PNG的不透明性,你会得到你看到的效果。

    我建议你在你的粉色图片的左边和上面加一个8像素宽的白色边框,使它和蓝色图片的大小相同。这应该实现“按钮按下和粉红色”的外观,你似乎是在追求。

    一种方法是使用ImageMagick转换工具:

    convert -size 257x97 xc:white -page +8+8 School_pink.png -flatten School_pink_wborder.png
    

    但是,您需要运行给您通过的结果 pngquant 或者类似的工具,因为 convert 不输出索引彩色图像,只输出全色。