Я работаю над веб-сайтом (что я не сделал дизайн, кто-то дал мне HTML/CSS) в качестве разработчика, и у нас есть приятная анимация spinner для асинхронных загружаемых компонентов. Это вечно-вращающаяся анимация определяется этим правилом CSS:Почему атрибут позиции CSS влияет на анимацию вращения?
animation: spinning 1s infinite linear;
(у него также есть версии префикса поставщика, но это не имеет значения).
spinning
анимация определяется как:
@keyframes spinning {
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}
Наш дизайнер поставил атрибут position: absolute !important
к элементу прядения. Я пытался расположить его внутри какого-то другого элемента, и я думал, что атрибут не имеет значения. Как только я удалил position: absolute
, вращатель прекратил вращаться. Когда я снова добавил его, вращающийся вращался снова.
Я пробовал другие position
ценности тоже, кажется, что absolute
и fixed
работают нормально (относительно спиннинг анимации) во время relative
и static
причиной анимации, чтобы остановить.
Почему атрибут позиции CSS влияет на анимацию спиннера?
Вот отрывок воспроизведения проблемы:
@keyframes spinning {
0% { transform: rotate(0); }
100% { transform: rotate(360deg); }
}
#first{
position: absolute;
}
#second{
position: relative; /* or don't specify it at all */
}
<div style='background:yellow;width:400px;height:100px;'>
<span id='first' style='animation:spinning 1s infinite linear'>hello</span>
</div>
<div style='background:lime;width:400px;height:100px;'>
<span id='second' style='animation:spinning 1s infinite linear'>hello</span>
</div>
Я не имею ни малейшего понятия, почему это происходит, но вы можете также поместить элементы с абсолютным позиционированием в родительские элементы, используя 'позиции: relative'in эти родители. – Aer0
@ Аш Я бы хотел, чтобы это было, но это крупный проект с множеством компонентов и там, поэтому это практически невозможно. Даже очень сложно обеспечить SSCCE, так как даже создание может занять несколько часов. Я ищу любые известные подсказки о том, почему это произойдет, если это известная проблема сообщества. –
Я думаю, вы должны проверить ** вращающийся ** ключевой кадр. Он может дать вам ответ на основе структуры html –