使用CSS3动画模仿闪烁标记

m93*_*93a 143 html css blink css3 css-animations

我真的想让一段文字在不使用javascript或文本装饰的情况下使老式风格闪烁.

没有过渡,只有*闪烁*,*闪烁*,*闪烁*!


编辑:这与那个问题不同,因为我要求在没有连续转换的情况下闪烁,而其他问题的OP询问如何用连续转换替换闪烁

Nei*_*eil 232

原来的Netscape <blink>有80%的占空比.这非常接近,虽然真实<blink>只影响文本:

.blink {
  animation: blink-animation 1s steps(5, start) infinite;
  -webkit-animation: blink-animation 1s steps(5, start) infinite;
}
@keyframes blink-animation {
  to {
    visibility: hidden;
  }
}
@-webkit-keyframes blink-animation {
  to {
    visibility: hidden;
  }
}
Run Code Online (Sandbox Code Playgroud)
This is <span class="blink">blinking</span> text.
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关关键帧动画的更多信息.

  • 是的,它更简单.您可以添加webkit前缀以使其在Chrome和Safari中正常运行. (2认同)
  • 如果没有webkit前缀,这可能不适用于Chrome/safari. (2认同)
  • 我喜欢做的是,而不是使一个类闪烁,使闪烁标记(使用`blink {动画:闪烁1步(5,开始)无限; -webkit-animation:闪烁1s步(5,开始)无限;} `).这样,您可以使用`<blink>`标签,而不是`<span class ="blink">`=) (2认同)

m93*_*93a 88

让我告诉你一个小技巧.

正如Arkanciscan 所说,你可以使用CSS3过渡.但他的解决方案看起来与原始标签不同.

你真正需要做的是:

@keyframes blink {
  50% {
    opacity: 0.0;
  }
}
@-webkit-keyframes blink {
  50% {
    opacity: 0.0;
  }
}
.blink {
  animation: blink 1s step-start 0s infinite;
  -webkit-animation: blink 1s step-start 0s infinite;
}
Run Code Online (Sandbox Code Playgroud)
<span class="blink">Blink</span>
Run Code Online (Sandbox Code Playgroud)

JSfiddle演示

  • 在四种主要浏览器中都不起作用. (2认同)
  • 由于输入错误而无法正常工作:在webkit部分,动画名称"blink"缺失.固定. (2认同)

Bel*_*ash 46

试试这个CSS

@keyframes blink {  
  0% { color: red; }
  100% { color: black; }
}
@-webkit-keyframes blink {
  0% { color: red; }
  100% { color: black; }
}
.blink {
  -webkit-animation: blink 1s linear infinite;
  -moz-animation: blink 1s linear infinite;
  animation: blink 1s linear infinite;
} 
Run Code Online (Sandbox Code Playgroud)
This is <span class="blink">blink</span>
Run Code Online (Sandbox Code Playgroud)

您需要浏览器/供应商特定的前缀:http://jsfiddle.net/es6e6/1/.


S.B*_*.B. 30

实际上没有必要visibilityopacity- 你可以简单地使用color,它具有保持任何"闪烁"仅为文本的好处:

blink {
    display: inline;
    color: inherit;
    animation: blink 1s steps(1) infinite;
    -webkit-animation: blink 1s steps(1) infinite;
}
@keyframes blink { 50% { color: transparent; } }
@-webkit-keyframes blink { 50% { color: transparent; } }
Run Code Online (Sandbox Code Playgroud)
Here is some text, <blink>this text will blink</blink>, this will not.
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/2r8JL/

  • 精彩!这是唯一提供纯文本闪烁的解决方案.所有其他解决方案也会闪烁元素的背景.要进行测试,请在蓝色文本上使用带有白色的"<span>",使用带有绿色背景的"<body>".仅在此解决方案中,蓝色跨度背景不会闪烁. (4认同)

air*_*nix 11

我为此会下地狱:

=keyframes($name)
  @-webkit-keyframes #{$name}
    @content
  @-moz-keyframes #{$name}
    @content
  @-ms-keyframes #{$name}
    @content
  @keyframes #{$name}
    @content


+keyframes(blink)
  25%
    zoom: 1
    opacity: 1

  65%
    opacity: 1 

  66%
    opacity: 0

  100%
    opacity: 0

body
  font-family: sans-serif
  font-size: 4em
  background: #222
  text-align: center

  .blink
    color: rgba(#fff, 0.9)
    +animation(blink 1s 0s reverse infinite)
    +transform(translateZ(0))

.table
  display: table
  height: 5em
  width: 100%
  vertical-align: middle

  .cell
    display: table-cell
    width: 100%
    height: 100%
    vertical-align: middle
Run Code Online (Sandbox Code Playgroud)

http://codepen.io/anon/pen/kaGxC(用波旁威士忌)

  • 这就是他为此下地狱的原因。 (2认同)

小智 6

另一种变化

.blink {
    -webkit-animation: blink 1s step-end infinite;
            animation: blink 1s step-end infinite;
}
@-webkit-keyframes blink { 50% { visibility: hidden; }}
        @keyframes blink { 50% { visibility: hidden; }}
Run Code Online (Sandbox Code Playgroud)
This is <span class="blink">blink</span>
Run Code Online (Sandbox Code Playgroud)