Eu gostaria de aplicar uma transição CSS a todas as propriedades, exceto a posição de fundo. Tentei fazer assim:
.csstransitions a {
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
transition: all 0.3s ease;
}
.csstransitions a {
-webkit-transition: background-position 0s ease 0s;
-moz-transition: background-position 0s ease 0s;
-o-transition: background-position 0s ease 0s;
-ms-transition: background-position 0s ease 0s;
transition: background-position 0s ease 0s;
}
Primeiro, defini todas as propriedades para transição e, em seguida, tentei sobrescrever apenas a transição para a propriedade background-position.
No entanto, isso também parece redefinir todas as outras propriedades - basicamente, nenhuma das transições parece acontecer mais.
Existe uma maneira de fazer isso sem listar todas as propriedades?
css
css-transitions
Jantar
fonte
fonte
Respostas:
Esta é uma solução que também funciona no Firefox:
Fiz uma pequena demonstração: http://jsfiddle.net/aWzwh/
fonte
1ms
não funcionou para mim, mas0
funcionou.1ms
não funcionou, mas1ms none
funcionou! @ericsoco0ms
ou0s
funciona também.Espero não se atrasar. Isso é feito usando apenas uma linha!
Isso funciona no Chrome. Você deve separar as propriedades CSS com uma vírgula.
Aqui está um exemplo prático : http://jsfiddle.net/H2jet/
fonte
all
propriedade de transição parece substituir todas as outras, não importa o quê.color 0
, funcionou, mas certamente não está funcionandobackground-position 0
. Nembackground 0
produz resultados para mim ... Aqui está um jsFiddle que criei no menu Gaming.SE. Para ser honesto, só testeibackground-position
inicialmente porque é isso que a pergunta menciona especificamente e é o que eu estava tentando mudar..1ms
Experimente isso ...
fonte
Você pode tentar usar o método W3C padrão:
http://jsfiddle.net/H2jet/60/
fonte
Para quem procura uma forma abreviada de adicionar transição para todas as propriedades, exceto para uma propriedade específica com atraso , esteja ciente de que há diferenças até mesmo entre os navegadores modernos.
Uma demonstração simples abaixo mostra a diferença. Verifique o código completo
O Chrome irá "combinar" as duas animações (como eu esperava), como abaixo:
Embora o Safari o "separe" (o que pode não ser esperado):
Uma forma mais compatível é atribuir a transição específica para uma propriedade específica, se houver um atraso para uma delas.
fonte
all
, é útil saber que é a única maneira de obter o comportamento desejado entre os navegadores.Experimentar:
Isso funcionou para mim em algo semelhante ..
fonte