У меня есть растущий список divs. Пользователь может нажать кнопку, чтобы добавить новый элемент div внизу.
Этот список имеет постепенную анимацию, чтобы пользователь мог видеть, когда список загружен (он получает данные с сервера).
Когда добавляется новая строка, я бы не хотел использовать анимацию постепенного появления.
Я пытался использовать:
div:last-child {
animation: none;
}
Это работает только при первом добавлении нового div. На всех следующих дополнениях анимация применяется независимо.
Пожалуйста, проверьте это демо ниже, чтобы понять, что я имею в виду:
function addRow(text) {
var d = document.createElement('div');
d.innerHTML = text;
var root = document.querySelector('main');
root.appendChild(d);
}
body {
background: #222;
}
main > div {
background: #444;
border: 1px solid green;
animation: fade-in 1s;
}
div:last-child {
background: #999;
animation: none;
}
@keyframes fade-in {
from { opacity: 0 }
to { opacity: 1 }
}
<main>
<div>1</div>
<div>2</div>
<div>3</div>
</main>
<button type="button" onclick="addRow('hello')">Add row</button>
Как обеспечить, чтобы анимация запускалась по всему списку в первый раз, но предотвратить ее при последующих добавлениях?