开发者

jQuery fade in/out bug with transparent images in IE8

I've spent the last 4 hours trying to implement all the IE8 fixes for transparent images. Unfortunately none of them are working.

Here's the testing url: http://www.bluegrassbackingtracks.com/stage/

You can see when you scroll over the icons in IE8, the images have a black borde开发者_Python百科r added to them.

I would greatly appreciate anyone who can help us out.


This issue seems more about jQuery and the fadeIn/Out transparency issue with IE.

Check this out for reference: jquery IE Fadein and Fadeout Opacity

For helping IE, if you can place the image inside of a div and apply the fade to the div instead you should get the effect you are after. There can be transparency issues when the fade is applied to a background image.

Give something like this a try. You will need to adjust your jQuery a bit as well.

<ul class="img_list">
    <li class="image_two">
        <a href="category.php?id=2">
            <div class="overlay"><img src="images/buttontwo-overlay.png" alt="" width="136" height="176" /></div>
            <img src="images/buttontwo.png" alt="" width="136" height="176" />
        </a>
    </li>
</ul>


There's a lot of code to go through on that site, if you could post the relevant code here, it would be a lot easier to see what the problem is.

Until then, this may solve your problem:

var i;
for (i in document.images) {
    if (document.images[i].src) {
        var imgSrc = document.images[i].src;
        if (imgSrc.substr(imgSrc.length-4) === '.png' || imgSrc.substr(imgSrc.length-4) === '.PNG') {
            document.images[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='crop',src='" + imgSrc + "')";
        }
    }
}

Put this in $(function () {}); and it should add the filter to each image so that the opacity doesn't mess up and produce black.

If this doesn't work, take a look at: jquery cycle IE7 transparent png problem .


Define a solid background color to your image:

    .container img {
         background-color: white;
    }

Define the background-image css property of your image to its src attribute:

    $('.holder-thumbs li a img').each(function() {
         $(this).css('background-image', $(this).attr('src'));
    });

Advantage: you don't need to change your markup

Disadvantage: sometimes applying a solid background color is not an acceptable solution. It normally is for me.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜