【问题标题】:CSS3 Text Shadow & Opacity Bug - [fadeOut() / fadeIn() in Jquery]CSS3 文本阴影和不透明度错误 - [jquery 中的 fadeOut() / fadeIn()]
【发布时间】:2014-02-13 11:19:02
【问题描述】:

在淡化一些没有背景颜色或图像的文本时,使用 jquery fadeOut、fadeIn 和 fadeToggle 存在一个已知问题。 (文本在过渡期间发生绿色抗锯齿)

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

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

这是错误/问题的示例

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


更新:

我找到了一种解决方法,可以在下面的答案中找到,任何其他解决方案或解决方法,仍然很高兴知道。

【问题讨论】:

  • 有趣,因为该错误可以通过其他方式重现...Demo...我会认为这是浏览器错误?

标签: jquery fade css


【解决方案1】:

我刚刚找到了一种可以在某些情况下使用的解决方法..

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

通过使用 rgba 不透明度,您可以重新创建某些颜色并让文本阴影褪色,而不会出现抗锯齿问题。

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

【讨论】:

  • 给颜色增加一点不透明度也可以,并且可能在任何地方都可以毫无问题地使用:rgba(208, 208, 208, 0.99)。我尝试了更低的不透明度 (0.999),但这似乎被四舍五入到 1,因为它不再起作用了。
  • 这里的浏览器和机器之间显然存在一些不一致之处,因为 rgba 值适合你,不适合我,w7 64bit firefox 3.6
【解决方案2】:

这似乎不是 jQuery 的问题,而是 Chrome/Webkit 中的一个 bug,因为当你直接给元素 opacity 时也会发生这种情况。

除了报告它并在它修复之前避免它,我想不出你能做多少。

【讨论】:

  • 这个 bug 也可以在 mozilla 中找到,我希望有人知道解决方法
  • 有趣。然而,它似乎在我的 FF 3.6.3 中运行良好。
【解决方案3】:

就像 RoToRa 在评论中所说,您可以使用 rgba 将颜色属性的不透明度降低到 0.99。如果您不想更改所有颜色属性,这里有一个快速解决方法。很适合我

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

编辑:请确保仅在需要它的浏览器(我相信只有 Chrome)上使用此修复程序,因为旧版浏览器不支持 rgba。

【讨论】:

  • 这似乎是一个非常糟糕的主意,因为您要将所有颜色替换为 rgba,并非所有浏览器都支持 rgba - 特别是大多数版本的 ie
  • 是的。我对其进行了编辑以指定仅将其用于某些浏览器;)
【解决方案4】:

这段代码会将元素淡出到不可见,然后再淡入。

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

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

【讨论】:

  • 我想淡化文本阴影。不要删除它然后淡化元素,谢谢
  • 我认为你对褪色和去除之间的区别有点困惑。它们实际上是相同的。当你淡出某些东西时,它会被移除。在这里,我们将阴影设置为无。我们可以根据需要为其分配一个值。这不是你需要的吗。这正是您的示例显示的方式。
  • 我想淡化阴影而不是移除它。如果我只是想删除它,我不会开始这个问题,无论如何谢谢
猜你喜欢
  • 2021-10-15
  • 2011-07-31
  • 2013-04-24
  • 2012-07-17
  • 1970-01-01
  • 2017-11-08
  • 2011-12-05
  • 1970-01-01
  • 2012-01-03
相关资源
最近更新 更多