开发者社区> 问答> 正文

IE下半透明图片fadeOut()或是fadeIn()会先变黑再变换透明度

万恶的IE,用jQuery时IE下半透明图片fadeOut()或是fadeIn()会先变黑然后再变换透明度,不知怎么解决,求高手

展开
收起
小旋风柴进 2016-03-24 11:07:48 2257 0
1 条回答
写回答
取消 提交回答
  • 经过实践,找到了一种可以在ie8下实现淡入淡出的动画方式,具体的原理就是如果我们使用的是div包括img的方式布置元素,通常我们会在div上加上filter,但是在ie8下,这样相当于在在div和img身上加了双重效果。而且滤镜本身就是加载了图片路径的,所以简单的说,就是在IE8下,只需要给div加上滤镜,img标签可以隐藏掉。这样就可以实现淡入淡出的效果。

    代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Examples</title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <link href="" rel="stylesheet">
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $(".a").css({"opacity":"0"});
            $(".a").animate({
                opacity:1
            },1000,'ease-in-out')
        });
    </script>
    <style type="text/css">
        body{
            padding: 0;
            margin: 0;
            background: #ccc;
        }
        img{
            width: 100%;
            height: auto;
        }
        .a{
            width: 30%;
            background: transparent;
            -ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(src=logo.png,sizingMethod='scale');"
        }
        .lt-ie9 .normal{
            visibility: hidden;
        }
    
    </style>
    </head>
    
    <body>
        <div class="a">
            <img class="normal" src="logo.png" alt="">
        </div>
    </body>
    </html>
    2019-07-17 19:12:20
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载