如何仅使用 CSS 创建“闪烁”文本?

Posted

技术标签:

【中文标题】如何仅使用 CSS 创建“闪烁”文本?【英文标题】:How to create "Blinking" text with CSS only? 【发布时间】:2017-09-28 23:26:21 【问题描述】:

我正在尝试为闪烁文本创建一个纯 CSS 的解决方案。文字应该说:

正在研究...

而且我希望它淡入淡出,给用户留下这样的印象,即它正在以与跳动的心脏相同的速度进行研究。

这是我目前的代码:

HTML

<p class="blinking">Researching...</p>

CSS

.blinking 
    transition: opacity 2s ease-in-out infinite;
  opacity: 1;


@keyframes opacity 
  0% 
    opacity: 1;
  

  50% 
    opacity: 0.5
  

  100% 
    opacity: 0;
  

但这不起作用,这也是针对chrome扩展的,所以只要它在最新版本的chrome中工作就足够了。

【问题讨论】:

animation替换transition 把transition替换成动画,你也可以加alternatejsfiddle.net/Lg0wyt9u/1864 【参考方案1】:

应该这样做

.blinking 
    animation: mymove 2s infinite alternate;


@keyframes mymove 
    from opacity:0;
    to opacity: 1;
&lt;p class="blinking"&gt;Researching...&lt;/p&gt;

这是一个更流畅的动画

【讨论】:

【参考方案2】:

您的问题是您在 1 行中使用了过渡和动画。

将您的transition 更改为animation,如下所示。还将不透明度更改为 1 -> 0 -> 1 而不是 1 -> 0.5 -> 0,因为您希望闪烁而不是 1 -> 0,而不是再次过渡到 1 不透明度。

小提琴:https://jsfiddle.net/kc6936cw/

.blinking 

    animation: opacity 2s ease-in-out infinite;
    opacity: 1;


@keyframes opacity 
  0% 
    opacity: 1;
  

  50% 
    opacity: 0
  

  100% 
    opacity: 1;
  

编辑: 也可以使用 jtmingus 注释:您还可以将 alternate 标签添加到末尾,而不是从 1 -> 0 -> 1。看起来像animation: opacity 2s ease-in-out infinite alternate;

【讨论】:

太棒了!就是这样。我会尽快接受你的回答。 您也可以将alternate 标签添加到末尾,而不是从 1 -> 0 -> 1。这看起来像 animation: opacity 2s ease-in-out infinite alternate;【参考方案3】:
.blinking 
    transition: opacity 2s ease-in-out infinite;
    animation: blinker 1s linear infinite;
  opacity: 1;


@keyframes blinker 
  0% 
    opacity: 1;
  

  50% 
    opacity: 0.5
  

  100% 
    opacity: 0;
  

已经有一个很好的例子 How to make blinking/flashing text with css3?

【讨论】:

【参考方案4】:

显然,应该使用animation 而不是transition

.blinking 
  animation-name:animate;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  opacity: 1;


@keyframes animate 
  0% 
    opacity: 1;
  

  50% 
    opacity: 0.5
  

  100% 
    opacity: 0;
  

【讨论】:

以上是关于如何仅使用 CSS 创建“闪烁”文本?的主要内容,如果未能解决你的问题,请参考以下文章

我想构建改变的闪烁文本效果?在 CSS 中。

用 CSS3 动画模仿闪烁标签

用 CSS3 动画模仿闪烁标签

如何修复 CSS 导航闪烁问题

如何在表 td 中添加闪烁的文本光标(插入光标)

css可以让网页文字闪烁吗?