Свойство CSS-анимации при использовании для изменения непрозрачности также изменяет положение элемента? Если да, то что происходит в DOM, что делает это, и как это можно компенсировать?
Контекст: я добавил Javascript EventListener к набору изображений, который при нажатии вызывает функцию, которая инициирует анимацию CSS, затухающую щелкнув изображение. Также установлен таймер, который удаляет класс CSS, тем самым возвращая кликнутое изображение с непрозрачности 0 на непрозрачность 1. Все работает отлично, за исключением того, что изображение слегка появляется слева и сверху, откуда я изначально разместил его, и где я хочу, чтобы он быть. Такой же нежелательный эффект происходит как в Chrome, так и в Safari.
Здесь CSS:
.hiddenanimal {
animation: animalfade 1s;
animation-fill-mode: forwards;
}
@keyframes animalfade {
from { opacity: 1;
} to { opacity: 0;
}
}
Простой ответ: анимация CSS будет изменять только значения, о которых вы говорите. В вашем примере:
@keyframes animalfade {
from {opacity: 1;} to {opacity: 0;}
}
Единственное, что изменится, это opacity
.
Если ваш элемент перемещается, происходит что-то еще и, возможно, не элемент с анимацией.
Вы спрашиваете, что происходит в DOM. Технически: ничего. Значения CSS меняются со временем, а не DOM.
Наличие лучшего примера поможет другим лучше ответить на ваш вопрос. Я сделал предположения и не знаю, мой ответ даже близко к тому, что вы хотите знать. Если вы можете обновить свой вопрос, включив некоторые HTML и JavaScript, я могу изменить свой ответ.
@keyframes animalfade
в @keyframes animalfade
потому что в противном случае он @keyframes animalfade
бы в начале анимации.