CSS3 | Marcador de posição – Animação

Um exemplo ilustrativo AQUI no jsFiddle.

#Update 2014-08-31: Adicionado suporte para diferentes versões do Firefox.


estilo padrão de espaço reservado

A primeira coisa que você precisa fazer é projetar seu estilo de espaço reservado, se desejar. Neste caso escolhi a cor .

Sintaxe:

input[placeholder],
input
:-moz-placeholder, /* Mozilla Firefox 4 to 18 */
input
::-moz-placeholder { /* Mozilla Firefox 19+ */
color
: #8D8D8D;
}
input
::-webkit-input-placeholder {
color
: #8D8D8D;
}
input
:-ms-input-placeholder {
color
: #8D8D8D;
}

configurações de animação

Todo o comportamento do valor do marcador de posição é referenciado a uma regra de quadrochave chamada slidein .
Eu escolhi 400ms para a duração da animação é 400ms e a animação começa após 100ms .
modo de preenchimento ( avançar ) significa que o último quadro-chave será retido após a conclusão da animação .

Sintaxe:

input[placeholder]:focus,
input
:focus:-moz-placeholder, /* Mozilla Firefox 4 to 18 */
input
:focus::-moz-placeholder { /* Mozilla Firefox 19+ */
-moz-animation-name: slidein;
-moz-animation-delay: 0.1s;
-moz-animation-duration: 0.4s;
-moz-animation-fill-mode: forwards;
-moz-animation-timing-function: ease-out;
}
input
:focus::-webkit-input-placeholder {
-webkit-animation-name: slidein;
-webkit-animation-delay: 0.1s;
-webkit-animation-duration: 0.4s;
-webkit-animation-fill-mode: forwards;
-webkit-animation-timing-function: ease-out;
}
input
:focus:-ms-input-placeholder {
opacity
: 0;
}

criar animação

Com o nome da animação que você definiu antes para ser sua regra de quadro-chave, agora você precisa do mesmo nome para criar esta regra de quadro-chave e ter uma ligação entre as configurações feitas antes com as regras que deseja.

Sintaxe:

@-webkit-keyframes slidein {
from {
opacity
: 1;
padding
-left: 0px;
}
to
{
opacity
: 0;
padding
-left: 10px;
}
}
@-moz-keyframes slidein {
from {
opacity
: 1;
padding
-left: 0px;
padding
-right: 10px;
}
to
{
opacity
: 0;
padding
-left: 10px;
padding
-right: 0px;
}
}​

estilo de texto

Por último, mas não menos importante, você precisa definir em qual estilo os caracteres em seu campo de entrada serão projetados.

Sintaxe

input {
color
: black;
padding
-left: 0px;
padding
-right: 10px;
}

Nota:

Para o Mozilla, você deve definir o valor padding-right no início para o mesmo que o valor final de padding-left , porque ele redimensiona toda a caixa de entrada . E você também precisa preenchê- lo com o mesmo valor acima. Porque o Firefox irá alternar entre dois tamanhos se você estiver no foco.