当前位置:  开发笔记 > 前端 > 正文

IE正在失去ClearType

如何解决《IE正在失去ClearType》经验,为你挑选了2个好方法。

我正在经历一些非常奇怪的事情!

我有一个div,我隐藏着JS(jQuery).像这样:

$('#myDiv').hide();

然后,当我像这样做一个淡入淡出:

$("#myDiv").fadeIn('slow');

然后文本在IE中丢失ClearType但在FF中丢失.如果我选择fadeIn的切换,那么一切都很好.

IE是什么,有什么解决方案,因为它看起来很糟糕. (我在这一点上可能已经理解了ClearType)



1> Aron Rotteve..:

快速搜索主题显示以下内容:

jQuery fadeIn/fadeOut IE cleartype故障

问题似乎是CSS"过滤器"属性不会自动删除.解决此问题的最简单方法是手动删除它:

$('#myDiv').fadeIn('slow', function() {
   this.style.removeAttribute('filter');
});

正如上面的博客文章所解释的那样,这是一个相当混乱的解决方案.

摘自博客文章,包括解决此问题的更清晰的解决方案:

这意味着我们每次想要淡化元素时,都需要删除filter属性,这会使我们的代码看起来很乱.

一个简单,更优雅的解决方案是通过jQuery的插件接口将.fadeIn()和.fadeOut()函数与自定义函数包装在一起.代码完全相同,但我们不是直接调用淡入淡出函数,而是调用包装器.像这样:

$('#node').customFadeOut('slow', function() { 
   //no more fiddling with attributes here
});

那么,你如何使这个工作?在包含用于添加功能的jQuery库之后,只需包含以下代码.

(function($) {
    $.fn.customFadeIn = function(speed, callback) {
        $(this).fadeIn(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
    $.fn.customFadeOut = function(speed, callback) {
        $(this).fadeOut(speed, function() {
            if(jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if(callback != undefined)
                callback();
        });
    };
})(jQuery);


即使有了这个解决方案,我认为它仍然看起来非常糟糕.它显然有一个小问题.最好尽量尝试淡入彩色框,让文字瞬间出现

2> redsquare..:

一种方法是在div(通常)白色上设置背景颜色.


这对我来说有几次我遇到过这个问题.我认为你需要在被淡入或淡出的元素上设置背景颜色.
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有