CSS3 animasyonlarıyla yanıp sönen bir etiketi taklit etme


149

Gerçekten javascript veya metin dekorasyonu kullanmadan bir parça metnin eski okul stilini göz kırpmasını istiyorum.

Geçiş yok, sadece * yanıp sönüyor *, * yanıp sönüyor *, * yanıp sönüyor *!


DÜZENLEME : Bu farklı bu soruya ben sormak çünkü yanıp diğer soruların OP nasıl sorar oysa sürekli geçişler olmadan değiştirmek yanıp sürekli geçişler ile


1
Bunun için bulduğum en iyi cevap maalesef orijinal poster @ m93a tarafından silindi, bu yüzden henüz yükseltilemez. En iyi göz kırpma efektini üreten en basit çözüm olduğu ve büyük tarayıcıların tüm mevcut sürümlerinde çalıştığı için cevabın silinmesi ve kaldırılması gerektiğini düşünüyorum . WebKit CSS3 animasyonu kullanarak aynı çözüm üzerinde kısa bir blog gönderisini Emulating <blink> adresinde de okuyabilirsiniz .

Her cevap burada var gibi görünüyor neden ne anlamıyorum olan @-webkit-keyframeskural sonra öneksiz @keyframesüstünlüğü ve hatta bazıları var -webkit-animationöneksiz birinden sonra beyanı.
BoltClock

@BoltClock: Bunun nedeni, CSS3 animasyonlarının nispeten yeni olması ve Webkit tarayıcılarında henüz kararlı olmamasıdır. Sözde "önek", kararsız ve bitmemiş olsalar bile animasyonları kullanmak isteyen geliştiriciler için burada.
m93a

@ m93a: Bunu biliyorum, ama neden ön düzeltilmemiş kuraldan önce ve ondan önce yerleştirildiklerini soruyorum (görünüşe göre bu ifadeyi orijinal yorumuma dahil etmedim, hatam).
BoltClock

Yanıtlar:


242

Orijinal Netscape'in <blink>% 80 görev döngüsü vardı. Gerçek <blink>sadece metni etkilese de, bu oldukça yakın geliyor :

.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.

Ana Kare Animasyonları hakkında daha fazla bilgiyi burada bulabilirsiniz .


2
Evet, çok daha basit. Chrome ve Safari'de çalışmasını sağlamak için webkit öneki ekleyebilirsiniz.
m93a

2
Bu, webkit önekleri olmadan Chrome / safari'de çalışmayabilir.
David Pelaez

2
Yapmayı sevdiğim şey, göz kırpma sınıf yapmak yerine göz kırpma etiketi yapmaktır (ile blink { animation: blink 1s steps(5, start) infinite; -webkit-animation: blink 1s steps(5, start) infinite; }). Bu şekilde, <blink>etiketi <span class="blink">= yerine kullanabilirsiniz. )
416E64726577

Not: Bu sadece OP'nin talep ettiği "<blink> taklidi" dir. colorİe özelliği ile "on-off" -blink-animasyonu olarak kullanılamaz.
Martin Schneider

97

Size küçük bir numara göstereyim.

Arkanciscan'ın dediği gibi , CSS3 geçişlerini kullanabilirsiniz. Ancak çözümü orijinal etiketinden farklı görünüyor.

Gerçekten yapmanız gereken şudur:

@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 Demosu


@ Kırk İki Üzgünüm, -webkit- ön ekini unuttum . Sanırım Chrome ve Safari hariç tüm gerçek tarayıcılarda işe yaradı. Şimdi, güncellemeden sonra Firefox, Chrome, Opera, Safari ve MSIE10 için çalışmalıdır.
m93a

Yazıldığı gibi, bu cevap gerçekten Firefox, Chrome, Safari ve IE'nin mevcut sürümlerinde çalışacaktır .

2
Yazım hatası nedeniyle çalışmadı: webkit bölümünde animasyon adı blinkeksikti. Sabit.
Andrea Ligios

1
İyi çalışıyor, teşekkürler, işte benim çözümünüzü temel alan benim uygulama: jsfiddle.net/gnx4mqc4
Hamid Behnam

1
@ m93a: 0% 100% { opacity: 1.0; }Bölümler varsayılan oldukları için gereksiz görünüyor, değil mi?
jamadagni

48

Bu CSS'yi deneyin

@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>

Tarayıcıya / satıcıya özel öneklere ihtiyacınız var: http://jsfiddle.net/es6e6/1/ .


1
-Ms-animation veya -o-animation gibi bir şey yok ve -moz-animation sadece sürüm 15'teydi, şimdi kullanmayın. Gerçek desteği görmek için caniuse.com adresine bakın. Maalesef bu soruyu kabul etmeyeceğim :( PS: Başkalarının cevaplarında 'düzenle'yi kullanabilirsiniz.
m93a

Bu sadece benim eski kötü alışkanlığım - tüm yeni CSS3 özelliklerine son ekler ekle .. Güncelleme cevabı.
Belyash

bu "göz kırpma" değil "göz kırpma-fadeOut" dur.
Martin Schneider

30

Aslında gerek yoktur visibilityveya opacity- sadece colormetinde herhangi bir "yanıp sönme" tutmanın tersine sahip olan basitçe kullanabilirsiniz :

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.

Keman: http://jsfiddle.net/2r8JL/


4
Olağanüstü! Bu yalnızca metnin yanıp sönmesini sağlayan tek çözümdür. Diğer tüm çözümler öğenin arka planını da yanıp söner. Test etmek için, <span>mavi metinde beyaza <body>sahip bir yeşil arka plana sahip kullanın. Sadece bu çözümde, mavi açıklık arka planı yanıp sönmez.
jamadagni

10

Bunun için cehenneme gideceğim:

=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 (burbonlu sass)


1
Kodunuz bir Undefined mixin 'experimental'.hata oluşturur ve bu nedenle yanıp sönen animasyonu derlemeyecek ve görüntülemeyecektir.

6

Başka bir varyasyon

.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

Benim durumumda 1s aralıklarla yanıp sönen metin çalışıyor.

.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

biraz parlama efekti istiyorsanız bunu kullanın

@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

Kodunuz için lütfen aşağıdaki çözümü bulun.

@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>

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.