gpt4 book ai didi

jquery - IE 正在失去 ClearType

转载 作者:行者123 更新时间:2023-12-03 22:03:06 26 4
gpt4 key购买 nike

我遇到了一些非常奇怪的事情!

我有一个用 JS (jQuery) 隐藏的 div。像这样:

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

然后当我像这样进行淡入时:

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

那么文本在 IE 中会丢失 ClearType,但在 FF 中不会丢失。如果我使用切换代替淡入,那么一切都很好。

IE 到底在做什么?有没有解决方案,因为它看起来很糟糕。(我已经打开了 ClearType,您现在可能已经理解了)

最佳答案

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

jQuery fadeIn/fadeOut IE cleartype glitch

问题似乎是CSS“过滤器”属性没有自动删除。此问题最简单的解决方案是手动删除它:

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

正如上面的博客文章所解释的,这是一个相当困惑的解决方案。

摘自博客文章,包括针对此问题的更干净的解决方案:

This means that every single time we want to fade an element, we need to remove the filter attribute, which makes our code look messy.

A simple, more elegant solution would be to wrap the .fadeIn() and .fadeOut() functions with a custom function via the plugin interface of jQuery. The code would be exactly the same, but instead of directly calling the fade functions, we call the wrapper. Like so:

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

So, how do you get this working? Just include the following code after you include the jQuery library for the added functionality.

(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);

关于jquery - IE 正在失去 ClearType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com