【问题标题】:How to animate Text gradient using CSS?如何使用 CSS 为文本渐变设置动画?
【发布时间】:2018-06-11 11:27:52
【问题描述】:

我在我的网站 (http://marekcmarko.xyz) 上使用这个 CSS3 文本闪耀渐变动画,但如果你滚动网站并停在应用它的标题上,它会一直闪烁:

.textShineBlack {
background: linear-gradient(to right, #000 20%, #bada55 30%, #bada44 70%, #000 80%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
text-fill-color: transparent;
background-size: 200% auto;
animation: textShine 7s ease-in-out infinite;


@keyframes textShine {
to {
    background-position: 200%;
}

有没有人知道我应该怎么做才能摆脱这种闪烁?我不知道...我无法截屏 - 甚至不知道是否可能。

【问题讨论】:

  • 页面上有多少个实例?似乎这会给浏览器的渲染引擎带来很大的负担,或者轮播中存在内存泄漏 - 每次幻灯片更改时,文本动画都会冻结,直到幻灯片更改完成。这篇文章可能会让您了解如何解决问题:medium.com/outsystems-experts/…
  • 我用了 7 次 + 幻灯片 = 11 节课。好吧,我从 flexslider 幻灯片中删除了它,但它没有帮助,因为当我快速向上 n 向下滚动时,我仍然看到黑色和绿色块。如果有帮助,我将尝试完全禁用滑块,并阅读您发送给我的内容。谢谢

标签: css css-animations linear-gradients


【解决方案1】:

问题是您将动画设置为无限,因此当它结束时,它将立即重新启动为初始状态。为避免这种情况,您可以在动画中添加 alternate

.textShineBlack {
  background: linear-gradient(to right, #000 20%, #bada55 30%, #bada44 70%, #000 80%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-fill-color: transparent;
  background-size: 200% auto;
  animation: textShine 7s ease-in-out infinite alternate;
}

@keyframes textShine {
  to {
    background-position: 200%;
  }
}
<h1 class="textShineBlack">SOME text</h1>

【讨论】:

  • 嗯,有趣,我将它与alternate一起使用,但它一直在闪烁。好吧,当我在标题“Schopnosti & Vlastnosti”和“O mne”之间快速上下滚动时。我
  • 我尝试重新启动 firefox...嗯.. 它一直在闪烁,但不知何故
  • @MarekCmarko Strange,正在调试以查看发生了什么...但我认为这是因为您在网站上使用了很多动画和复杂的东西,所以它变得迟钝
  • 到目前为止,我从没想过它会很复杂。但是,当我查看由框架或 WP 主题构建的真实网站时,我认为它们很复杂,而不是我拥有的糟糕代码。我只是认为这将是由我编写(并包含)的 javascript 引起的
猜你喜欢
  • 2019-12-04
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
相关资源
最近更新 更多