PLAY
Últimos artigos
Página inicial
Compartilhar
Escrever artigo
Denunciar
Atalhos no teclado
Enviar feedback
Sobre a Wikiblogs
Voltar
Atualizar página
Sugestões de pesquisa
Carregando...
Start a Hangout
Iniciar um Hangout sobre essa página
Animation e keyframes (Avançado)

segunda-feira, 24 de setembro de 2012

Animation e keyframes (Avançado)

Depois de muito procurar na internet, não achei um tutorial bom que ensinasse a mexer com "-webkit-animation", então decidi fazer um eu mesmo para ensinar melhor aos alheios com esse tipo de propriedade.

Descrição

Com o "-webkit-animation", podemos criar animações, que podem substituir imagens animadas, animações em Flash, e JavaScripts em muitas páginas da web.

Para criar animações em CSS3, você vai ter que aprender sobre a regra @ keyframes.

A regra @ keyframes é onde a animação é criada. Especifique um estilo CSS dentro da regra @ keyframes e a animação irá mudar gradualmente a partir do estilo atual para o novo estilo.

Prefixo

Para começar, primeiramente claro que temos que colocar um prefixo de animation. No Firefox é prefixo o "-moz-", Chrome e Safari usam o prefixo "-webkit-", Opera requer o prefixo "-o-" e ainda existe um outro que é "-ms-", mais eu não sei de qual é o navegador.

Exemplo: @-webkit-keyframes roll /* Safari e Chrome */ { 100% {-webkit-transform: rotate(360deg);} } @-moz-keyframes roll /* Firefox */ { 100% {-moz-transform: rotate(360deg);} } @-o-keyframes roll /* Opera */ { 100% {-o-transform: rotate(360deg);} } @-ms-keyframes roll { 100% {-ms-transform: rotate(360deg);} } @keyframes roll { 100% {transform: rotate(360deg);} }

No exemplo eu coloquei um uma animação de rotação.

Agora nós criamos uma classe que irá receber a animação, e na classe especificamos o nome do que demos no @ keyframes (no caso "roll") e também colocamos o duração da animação.

Exemplo: div { -webkit-animation: roll 5s; /* Safari e Chrome */ -moz-animation: roll 5s; /* Firefox */ -o-animation: roll 5s; /* Opera */ -ms-animation: roll 5s; animation: roll 5s; } Avançado

Ainda existe outras propriedades que podem ajudar na hora de especificar a animação.

div { /* Chrome e Safari: */ -webkit-animation-name: roll; -webkit-animation-duration: 5s; -webkit-animation-timing-function: linear; -webkit-animation-delay: 2s; -webkit-animation-iteration-count: infinite; -webkit-animation-direction: alternate; -webkit-animation-play-state: running; /* Firefox: */ -moz-animation-name: roll; -moz-animation-duration: 5s; -moz-animation-timing-function: linear; -moz-animation-delay: 2s; -moz-animation-iteration-count: infinite; -moz-animation-direction: alternate; -moz-animation-play-state: running; /* Opera: */ -o-animation-name: roll; -o-animation-duration: 5s; -o-animation-timing-function: linear; -o-animation-delay: 2s; -o-animation-iteration-count: infinite; -o-animation-direction: alternate; -o-animation-play-state: running; /* Opera: */ -o-animation-name: roll; -o-animation-duration: 5s; -o-animation-timing-function: linear; -o-animation-delay: 2s; -o-animation-iteration-count: infinite; -o-animation-direction: alternate; -o-animation-play-state: running; -ms-animation-name: roll; -ms-animation-duration: 5s; -ms-animation-timing-function: linear; -ms-animation-delay: 2s; -ms-animation-iteration-count: infinite; -ms-animation-direction: alternate; -ms-animation-play-state: running; animation-name: roll; animation-duration: 5s; animation-timing-function: linear; animation-delay: 2s; animation-iteration-count: infinite; animation-direction: alternate; animation-play-state: running; } A mesma animação que a de acima, utilizando a propriedade de animação abreviada: -webkit-animation: roll 5s linear 2s infinite alternate; -moz-animation: roll 5s linear 2s infinite alternate; -o-animation: roll 5s linear 2s infinite alternate; -ms-animation: roll 5s linear 2s infinite alternate; animation: roll 5s linear 2s infinite alternate;
PropriedadeDescriçãoPadrão
animationUma propriedade abreviação para todas as propriedades de animação, com exceção da propriedade de animation-play-state
animation-nameEspecifica o nome da animação @ keyframes0
animation-durationEspecifica quantos segundos ou milissegundos uma animação leva para completar um ciclo.0
animation-timing-functionDescreve como a animação vai avançar mais um ciclo de sua duração.ease
animation-delayEspecifica quando a animação vai começar.0
animation-iteration-countEspecifica o número de vezes que uma animação é reproduzida.1
animation-directionEspecifica se ou não a animação deve jogar no reverso em ciclos alternados.
animation-play-stateEspecifica se a animação está em execução ou em pausa.
Exemplo: <!DOCTYPE html> <html> <head> <title>Demo: animation - Wikiblogs</title> <style type="text/css"> .Ftc { width: 100px;height: 100px;background: red;-webkit-animation: roll 5s linear 1s infinite alternate;-moz-animation: roll 5s linear 1s infinite alternate;-o-animation: roll 5s linear 1s infinite alternate;-ms-animation: roll 5s linear 2s infinite alternate;animation: roll 5s linear 2s infinite alternate;} @-webkit-keyframes roll { 100% {-webkit-transform: rotate(360deg);}} @-moz-keyframes roll { 100% {-moz-transform: rotate(360deg);}} @-o-keyframes roll { 100% {-o-transform: rotate(360deg);}} @-ms-keyframes roll { 100% {-ms-transform: rotate(360deg);}} @keyframes roll{ 100% {transform: rotate(360deg);}} </style> </head> <body> <div class="Ftc"></div> </body> </html>

Bom, é isso. Alguma dúvida ou pergunta, deixe em um comentário.

Comentários