CSS3 애니메이션으로 깜박임 태그 모방


149

자바 스크립트 또는 텍스트 장식을 사용하지 않고 텍스트를 구식 스타일로 깜박이게하고 싶습니다.

전환 없음, * blink *, * blink *, * blink * 만!


편집 : 이것은 연속 전환없이 깜박임 을 요청하기 때문에이 질문 과 다릅니다 . 반면 다른 질문의 OP는 깜박임 을 연속 전환으로 대체 하는 방법을 묻습니다.


1
내가 찾은 가장 좋은 답변 은 불행히도 원래 포스터 @ m93a에 의해 삭제되었으므로 아직 투표 할 수 없습니다. 최고의 깜박임 효과를 생성하는 가장 간단한 솔루션이며 모든 최신 버전의 주요 브라우저 에서 작동하기 때문에 답변을 삭제 취소하고 공표해야한다고 생각 합니다 . WebKit CSS3 animation을 사용하여 Emulating <blink> 에서 동일한 솔루션에 대한 간단한 블로그 게시물을 읽을 수도 있습니다 .

내가 이해하지 못하는 것은 여기의 모든 단일 답변 이 접두사가없는 규칙 뒤에@-webkit-keyframes 규칙 이있는 것처럼 보이고 일부 는 접두사가없는 규칙 뒤에 선언하는 이유 입니다. @keyframes-webkit-animation
BoltClock

@BoltClock : CSS3 애니메이션은 비교적 새롭고 아직 웹킷 브라우저에서는 안정적이지 않기 때문입니다. 소위 "접두사"는 애니메이션이 불안정하고 완료되지 않은 경우에도 애니메이션을 사용하려는 개발자를위한 것입니다.
m93a

@ m93a : 나는 그것을 알고 있지만, 왜 그것들이 접두사가없는 규칙을 따르고 규칙이 아닌 이유를 묻고 있습니다 (분명히 내 원래 의견에 그 문구를 포함시키지 않았습니다).
BoltClock

답변:


242

원래 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;
  }
}
This is <span class="blink">blinking</span> text.

키 프레임 애니메이션 에 대한 자세한 내용은 여기를 참조하십시오 .


2
예, 훨씬 더 똑똑합니다. Chrome 및 Safari에서 작동하도록 웹킷 접두사를 추가 할 수 있습니다.
m93a

2
웹킷 접두사가없는 Chrome / safari에서는 작동하지 않을 수 있습니다.
David Pelaez

2
내가 좋아하는 것은 클래스를 깜박이는 대신 (와 함께 blink { animation: blink 1s steps(5, start) infinite; -webkit-animation: blink 1s steps(5, start) infinite; }) 태그를 깜박이는 것 입니다. 이렇게하면 =) <blink>대신 태그 만 사용할 수 있습니다.<span class="blink">
416E64726577

참고 : 이것은 OP에서 요청한 "<blink> 모방"입니다. 즉, color속성을 "on-off"-blink-animation으로 사용할 수 없습니다.
Martin Schneider

97

약간의 트릭을 보여 드리겠습니다.

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;
}
<span class="blink">Blink</span>

JSfiddle 데모


@ Forty-Two 죄송합니다 . -webkit- 접두사를 잊었습니다 . 크롬과 사파리를 제외한 모든 실제 브라우저에서 효과가 있다고 생각합니다. 이제 업데이트 후 Firefox, Chrome, Opera, Safari 및 MSIE10에서 작동합니다.
m93a

작성된 바와 같이,이 답변은 실제로 Firefox, Chrome, Safari 및 IE의 현재 버전 에서 작동 합니다.

2
오타 때문에 작동하지 않았습니다. 웹킷 부분에서 애니메이션 이름 blink이 누락되었습니다. 결정된.
Andrea Ligios

1
: 좋은, 감사는, 여기 당신의 솔루션을 내 구현을 기반으로 작동 jsfiddle.net/gnx4mqc4
하미드 Behnam

1
@ m93a : 0% 100% { opacity: 1.0; }섹션이 불필요 해 보입니다.
jamadagni

48

이 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;
} 
This is <span class="blink">blink</span>

브라우저 / 공급 업체별 접두사가 필요합니다 : http://jsfiddle.net/es6e6/1/ .


1
-ms-animation 또는 -o-animation과 같은 것은 없으며 -moz-animation은 버전 15에만 있으므로 지금 사용하지 마십시오. 실제 지원을 보려면 caniuse.com을 참조하십시오. 죄송하지만이 질문에 동의하지 않습니다 :( 추신 : 다른 답변에 '편집'을 사용할 수 있습니다.
m93a

그것은 나의 오래된 나쁜 습관입니다-모든 새로운 CSS3 속성에 접미사를 추가하십시오. 업데이트 된 답변.
Belyash

이것은 "깜박임"이 아니라 "깜박임 -fadeOut"입니다.
Martin Schneider

30

실제로 visibility또는 필요가 없습니다 opacity-단순히 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; } }
Here is some text, <blink>this text will blink</blink>, this will not.

피들 : http://jsfiddle.net/2r8JL/


4
훌륭한! 이것은 텍스트 전용 깜박임을 제공하는 유일한 솔루션입니다. 다른 모든 솔루션은 요소의 배경도 깜박입니다. 테스트하려면 with with 녹색 배경 <span>에 with with white 텍스트를 사용하십시오 <body>. 이 솔루션에서만 파란색 범위 배경이 깜박이지 않습니다.
jamadagni

10

나는 이것을 위해 지옥에 갈 것이다.

=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

http://codepen.io/anon/pen/kaGxC (버번과 함께 엉덩이)


1
코드 펜에서 Undefined mixin 'experimental'.오류가 발생 하여 깜박임 애니메이션이 컴파일 및 표시되지 않는 것처럼 보입니다.

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; }}
This is <span class="blink">blink</span>


2

제 경우에는 1 초 간격으로 텍스트가 깜박입니다.

.blink_me {
  color:#e91e63;
  font-size:140%;
  font-weight:bold;
  padding:0 20px 0  0;
  animation: blinker 1s linear infinite;
}

@keyframes blinker {
  50% { opacity: 0.4; }
}

-3

글로우 효과를 원하면 이것을 사용하십시오

@keyframes blink {
  50% {
    opacity: 0.0;
  }
}
@-webkit-keyframes blink {
  50% {
    opacity: 0.0;
  }
}

atom-text-editor::shadow  .bracket-matcher .region {
    border:none;
    background-color: rgba(195,195,255,0.1);
    border-bottom: 1px solid rgb(155,155,255);
    box-shadow: 0px 0px 9px 4px rgba(155,155,255,0.1);
    border-radius: 3px;
    animation: blink 2s steps(115, start) infinite;
    -webkit-animation: blink 2s steps(115, start) infinite;
}

-5

귀하의 코드에 대한 솔루션을 아래에서 찾으십시오.

@keyframes blink {
  50% {
    color: transparent;
  }
}

.loader__dot {
  animation: 1s blink infinite;
}

.loader__dot:nth-child(2) {
  animation-delay: 250ms;
}

.loader__dot:nth-child(3) {
  animation-delay: 500ms;
}
Loading <span class="loader__dot">.</span><span class="loader__dot">.</span><span class="loader__dot">.</span>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.