Анимация запускается, потому что псевдокласс :hover
переопределяет свойство <h1>
animation
. Когда псевдокласс удаляется, свойство animation
снова «меняется», возвращаясь к своему первоначальному значению, которое запускает анимацию.
Есть несколько способов обойти это поведение. Если вы хотите, чтобы анимация <h1>
загружалась, но никогда больше, рассмотрите возможность создания отдельного класса:
.a.b.onload {
animation-name: appear;
animation-duration: 1s;
animation-iteration-count: 1;
}
Затем в Javascript удалите класс после ожидания 1 секунды для начальной анимации, чтобы фини sh:
window.addEventListener("DOMContentLoaded", () => {
setTimeout( () => {
document.querySelector(".a.b").classList.remove("onload")
}, 1000);
});