Взгляните на этот простой JsFiddle, который я сделал , который анимирует новые элементы, которые входят в список.
Однако анимация влияет только на первую строку, а не на все строки.
Я сделал цвета случайными, чтобы вы могли видеть «скачки» в других строках при вставке нового элемента.
Есть ли способ сделать так, чтобы это влияло на все строки только с помощью CSS?
@keyframes enter {
0% {
transform: translateX(-100%);
margin-left: calc(var(--w) * -1);
}
100% {
transform: translateX(0px);
margin-left: 0
}
}
Это моя анимация, и это мой элемент списка:
.slidepush li {
--w: 50px;
width: var(--w);
height: 50px;
background-color: red;
vertical-align: top;
border: 0;
padding: 0;
margin: 0;
display: inline-block;
}
.enter {
animation: enter 1s;
}
Создан простой класс, который управляет ul и реализует add:
class SlidePush {
constructor(ulElement) {
this.element = ulElement;
}
add(item) {
this.element.prepend(item.addClass('enter'));
}
}
const sp = new SlidePush($(".slidepush"));
setInterval(() => {//
var colors = ['red', 'blue', 'green', 'black'];
var color = colors[Math.floor(Math.random() * colors.length)];
sp.add($("<li style='background-color:" + color +" !important;'></li>"));
}, 1000);