Atualmente, eu tenho este código:
@-webkit-keyframes blinker {
from { opacity: 1.0; }
to { opacity: 0.0; }
}
.waitingForConnection {
-webkit-animation-name: blinker;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: cubic-bezier(.5, 0, 1, 1);
-webkit-animation-duration: 1.7s;
}
Ele pisca, mas apenas pisca em "uma direção". Quero dizer, ele apenas desaparece e, em seguida, aparece novamente com opacity: 1.0
, depois desaparece novamente, aparece novamente e assim por diante ...
Eu gostaria que desaparecesse e depois "aumentasse" desse desvanecimento novamente para opacity: 1.0
. Isso é possível?
html
css
css-animations
opacity
ojek
fonte
fonte
Respostas:
Você está definindo primeiro
opacity: 1;
e depois finalizando0
, para que comece0%
e termine; em100%
vez disso, apenas defina a opacidade para0
at50%
e o resto cuidará de si mesmo.Demo
Aqui, estou definindo a duração da animação
1 second
e, em seguida, definindo otiming
comolinear
. Isso significa que será constante o tempo todo. Por último, estou usandoinfinite
. Isso significa que continuará indefinidamente.Como comentado, isso não funcionará em versões mais antigas do Internet Explorer e, para isso, você precisa usar jQuery ou JavaScript ...
Agradecemos a Alnitak por sugerir uma abordagem melhor .
Demo (Blinker usando jQuery)
fonte
blinker
como o retorno de chamada de conclusão para a.fadeIn
chamada.(function blink() { $('.blink_me').fadeOut(500).fadeIn(500, blink); })();
step-end
em vez delinear
era o que eu queria.Use o
alternate
valor paraanimation-direction
(e você não precisa adicionar nenhum keframes dessa maneira).CSS :
Eu removi o
from
quadro - chave. Se estiver ausente, ele será gerado a partir do valor que você definiu para a propriedade animada (opacity
neste caso) no elemento, ou se você não a definiu (e não o fez neste caso), a partir do valor padrão (que é1
paraopacity
).E por favor, não use apenas a versão WebKit. Adicione o não fixado depois dele também. Se você quiser apenas escrever menos código, use a abreviação .
fonte
cubic-bezier
peça comease-in-out
ou qualquer outra coisa: cubic-bezier.comA melhor maneira de obter um piscar puro "100% ligado, 100% desligado", como no antigo,
<blink>
é assim:fonte
color
propriedades, etc. Outras coisas são soluções alternativas ou animações "fade".Como alternativa, se você não deseja uma transição gradual entre show e hide (por exemplo, um cursor de texto piscando), use algo como:
Todos
1s
.cursor
irão devisible
parahidden
.Se a animação CSS não for suportada (por exemplo, em algumas versões do Safari), você poderá recorrer a este intervalo simples de JS:
Esse JavaScript simples é realmente muito rápido e, em muitos casos, pode até ser um padrão melhor que o CSS. Vale a pena notar que são muitas as chamadas DOM que tornam as animações JS lentas (por exemplo, $ .animate () do JQuery).
Ele também tem a segunda vantagem de que, se você adicionar
.cursor
elementos posteriormente, eles ainda serão animados exatamente ao mesmo tempo que outros.cursor
s, pois o estado é compartilhado; isso é impossível para o CSS, pelo que sei.fonte
Não sei por que, mas animar apenas a
visibility
propriedade não está funcionando em nenhum navegador.O que você pode fazer é animar a
opacity
propriedade de forma que o navegador não tenha quadros suficientes para diminuir ou diminuir o texto.Exemplo:
fonte
step-start
(veja minha resposta).Mude a duração e a opacidade para se adequar.
fonte
Mostrar snippet de código
fonte
Tarde, mas queria adicionar um novo com mais quadros-chave ... aqui está um exemplo no CodePen, pois houve um problema com os trechos de código internos:
fonte
fonte
Funciona para mim usando class = blink para o (s) respectivo (s) elemento (s)
Código JS simples
fonte