У меня есть две коробки:Как анимировать с относительными преобразованиями в css?
<div class='item' style='transform:translateY(100px)'>
</div>
<div class='item' style='transform:translateY(300px)'>
</div>
Они оба используют один и тот же класс:
.item {
position:absolute;
background:red;
animation:float 3s ease-in-out infinite;
width:100px;
height:100px;
}
анимация выглядит следующим образом:
@keyframes float {
from, to { transform: translateY(-10px); }
50% { transform: translateY(10px); }
}
Но это делает обе коробки идут между -10 и 10px. Я бы хотел, чтобы это относилось к текущему значению поля.
Так Box1 при у: 100px будет анимировать из 90 пикселей на 110px и Box2 при у: 300px будет анимировать от 290px до 310px
Можно ли это сделать в CSS? Я бы предпочел не иметь отдельную анимацию в поле. Потому что у меня может быть сотни ящиков.
jsfiddle: https://jsfiddle.net/foreyez/1n1en8uk/
Это показывает, что в точке анимации, обе коробки на том же месте ... но если бы это было по отношению анимации они бы просто плавающим вверх и вниз в их нынешнем месте.
Примечание: пожалуйста, не используйте верхнюю/левую позицию для получения относительного положения. Я ищу специально для относительных ТРАНСФОРМ. (если вы знаете, почему я делаю это в 3d для оси z, так как x, y уже используются).
Является 'от того, чтобы' 'действительного css' синтаксиса для' @ keyframes'? – guest271314
да, потому что он не будет анимировать иначе – foreyez
Позиционирование элементов относительно должно решить это -> https://jsfiddle.net/adeneo/1n1en8uk/2/ – adeneo