Используя Sass, я перебираю элементы с классом animateMe
и применяю задержку анимации, используя индекс в качестве множителя.
@for $i from 1 through 100 {
.animateMe:nth-child(#{$i}) {
animation-delay: .5s * $i;
}
}
Используя Angular, я применяю класс animateMe
к div только тогда, когда выполняются условия с ngClass
.
<div id="neededfoodnames" *ngFor="let list of lists; let i = index" [ngClass]="{'animateMe':lists[i-1]?.category != list.category && animate == true}">
.....
</div>
Это должно применять класс только в том случае, если категория элемента отличается от категории последнего элемента, а для анимации установлено значение true, что так и есть.
animate: boolean = true;
Это приводит к 4 div, которые имеют класс animateMe
. Однако задержка анимации не применяется правильно, так как первый и второй div имеют правильные задержки 0,5 с и 1 с соответственно, а третий div имеет неправильную задержку 3 с.
Третий div получает класс animateMe:nth-child(6)
, но он должен быть animateMe:nth-child(3)
.
Как я могу это исправить? Я создал StackBlitz для этой проблемы.
#neededfoodnames:nth-child(4)
не содержит контента? Или вы пытаетесь перезаписать свой css с помощью ng-animate - person stwilz   schedule 01.08.2018#neededfoodnames
там :) - person stwilz   schedule 01.08.2018#neededfoodnames
. КлассanimateMe
должен применяться только к 4 div, и поэтомуanimateMe:nth-child(6)
не должен существовать, но он существует. - person cfoster5   schedule 01.08.2018lists[i-1]?.category
здесь опечатка. точка после вопросительного знака в вашем тернарном операторе. - person DragonKnight   schedule 01.08.2018