O CSS3 vem pra ajudar a todos. Pro desenvolvedor a vida fica mais fácil pois é possível chegar a efeitos, que antes precisavam de uma volta gigantesca, de uma forma bem mais simples; e o usuário que pode ganhar uma experiência melhor e mais rápida.
Um dos recursos que fazem do CSS3 um negócio tão bacana é a propriedade transition. Ao pé da letra e de um jeito bem direto, essa propriedade define como será a transição entre dois estilos.
Uma transição ocorre quando um elemento muda de um estado para outro e o navegador preenche essa mudança de estado com uma sequência de quadros intermediários. Possui um começo e um estado final.
É comum vermos transições sendo usadas para criação de efeitos com hover, ou quando algo é adicionado e/ou removido na página. O efeito do hover pode ser uma mudança sutil na cor da font e a informação na página pode surgir na tela.
Como as transições são limitadas a esses dois estágios, estas podem pecar na suavidade das animações e ao mesmo tempo se tornarem mais fáceis de serem implementadas.
Podemos definir, por exemplo, como vai ser a transição de um elemento:
O que a propriedade transition faz é analisar a diferença de valores da(s) propriedade(s) do elemento entre os dois estados/estilos e faz com que a transição aconteça de forma mais suave (pode ser customizada) e não de forma brusca como estamos acostumados.
São 4 propriedades que podemos definir:
transition-property => a propriedade a qual podemos aplicar a transição (se quiser aplicar em todas, você pode passar o valor all);
transition-duration => quanto tempo vai demorar a transição;
O exemplo a seguir mostra uma div 100px * 100px vermelho. A div também especificou um efeito de transição para a propriedade de largura, com uma duração de 2 segundos:
O efeito de transição vai começar quando a propriedade CSS especificada (largura) altera o valor.
O exemplo a seguir adiciona um efeito de transição para a largura e a propriedade de altura, com uma duração de 2 segundos para a largura e 4 segundos para a altura:
transition-delay => tempo que a transição vai demorar pra se iniciar (pode ser omitido e seu valor padrão é 0);
transition-timing-function => como a transição vai progredir no tempo. Aceita os valores:
Não há necessidade de escrever uma por uma, podemos optar pelo shortcode transition, a forma abreviada para as propriedades de transição mostradas anteriormente. Observe os exemplos a seguir
Dessa maneira, as variações abaixo tem o mesmo efeito:
Animação CSS. Site by Elton Rodrigo