Animar transformar apenas uma propriedade (escala) substituir outra (traduzir)
O problema é que otransform
valor da propriedade tem várias partes comotranslate
, scale
etc.
Esta é uma pergunta teórica sobre elemento, vamos.loader
isso temtransform:translate(10px, 10px)
e na animação eu quero animar oscale
propriedade. Nesse caso, o navegador não aceita otransform:translate(10px, 10px)
e levará apenas oscale
.
Estou procurando uma maneira de contornar este problema.
Aqui está um exemplo para esta pergunta. Por favor, lembre-se de que não estou procurando uma resposta para este exemplo específico (como: quebrar o elemento ou adicionar o elementotranslate
valor para a definição de animação), mas uma solução genérica (se existir, é claro).
.loading {
position: relative;
width: 100px;
height: 100px;
background: #eee;
}
.loading:before,
.loading:after {
content: "";
width: 50%;
height: 50%;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
border-radius: 50%;
background-color: #fff;
opacity: 0.6;
position: absolute;
top: 0;
left: 0;
/* the broswer doesn't take this */
transform: translate(100px, 300px);
-webkit-animation: bounce 2s infinite ease-in-out;
animation: bounce 2s infinite ease-in-out;
}
.loading:after {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
@keyframes bounce {
0%, 100% {
transform: scale(0);
-webkit-transform: scale(0);
}
50% {
transform: scale(1);
-webkit-transform: scale(1);
}
}
<div class="loading"></div>