2011-02-24 111 views
2

有一个已知的问题,使用jQuery fadeOut,fadeIn和fadeToggle,当淡入淡出某些没有背景颜色或图像的文字。 (文本在转换期间发生绿色抗锯齿事件)CSS3文字阴影和不透明错误 - [fadeout()/ fadeIn()在jquery]

以此为例。 jQuery cycle: fading white text becomes "green" in Windows/Firefox/Cleartype Enabled

我最近发现,这种情况也发生在使用css 3文本阴影,不幸的是你不能在文本阴影上设置背景颜色,没有人有任何解决方案或解决方法吗?

这里是错误/问题的例子

http://jsfiddle.net/blowsie/2UMJ4/


更新:

我已经找到一个变通办法,可以在下面,任何我的回答被发现其他解决方案或解决方法,仍然很了解。

+1

有趣的是,作为错误可以用另一种方式重现... [Demo](http://jsfiddle.net/dXJHL/)...我会认为这是浏览器错误? – vincicat 2011-03-01 17:18:31

回答

1

我刚找到一个变通可能在某些情况下可以使用..

http://jsfiddle.net/blowsie/2UMJ4/8/

使用RGBA透明度,你可以重新创建某些颜色,并有文字阴影衰落,而无需防引起问题。

text-shadow:50px 50px rgba(0,0,0,0.2); 
+1

只给一点不透明的颜色也有效,可以在任何地方使用,没有任何问题:'rgba(208,208,208,0.99)'。我尝试了更少的不透明度('0.999'),但似乎回到了1,因为它不再工作。 – RoToRa 2011-02-28 13:40:52

+0

浏览器和机器之间显然有一些不一致的地方,因为rgba值适合你,不适合我,w7 64bit firefox 3。6 – Blowsie 2011-02-28 13:47:49

+1

部分不一致应该来自四舍五入.... – vincicat 2011-03-01 17:09:05

0

这似乎不是一个jQuery的问题,但在Chrome/Webkit的错误,因为它也发生在你直接给元素opacity

除了报告和避免它,直到它被修复,我想不出你能做什么。

+0

这个bug也可以在mozilla中找到,我希望有人可能知道解决方法 – Blowsie 2011-02-28 09:45:15

+0

有趣。但它似乎在我的FF 3.6.3中工作正常。 – RoToRa 2011-02-28 13:38:27

-1

此代码将淡出元素隐身,褪去它放回

$('#button').click(function() { 
    $('h1').css({'text-shadow':'none'}).fadeToggle('slow') 
}); 

看到这个:http://jsfiddle.net/2UMJ4/10/

+0

我想淡出文字阴影。不删除它,然后淡化元素,谢谢你 – Blowsie 2011-03-03 08:45:30

+1

我认为你有点困惑在关于淡入淡出之间的区别。他们几乎是一样的。当你淡化某些东西时,它会被移除。在这里,我们正在设置阴影。我们可以根据需要为其分配一个值。这不是你需要的吗?它正是你的例子显示它的方式。 – Hussein 2011-03-03 08:50:33

+1

我想淡入淡出的影子。我不会开始这个问题,如果我只是想删除它,谢谢 – Blowsie 2011-03-03 12:40:38

0

像RoToRa在评论说,你可以可以只降低使用rgba将颜色属性的不透明度设置为0.99。如果您不想更改所有颜色属性,可以快速解决此问题。对我的作品很大

$('*').css('color', function(index, value) { 
    return value.replace('rgb', 'rgba').replace(')', ', 0.99)'); 
}); 

编辑:请确保您使用此修复程序仅适用于在你需要它的浏览器(我相信只有铬)作为旧的浏览器不支持RGBA。

+0

这似乎是一个非常糟糕的主意,因为你正在将所有颜色替换为rgba,并非所有浏览器都支持rgba - 大多数版本的ie,特别是 – Blowsie 2011-10-27 16:15:17

+0

是真的。我编辑它以指定仅用于某些浏览器;) – Y0lk 2011-10-27 17:46:55