Menggunakan Sass, saya mengulang item dengan kelas animateMe
dan menerapkan penundaan animasi menggunakan indeks sebagai pengganda.
@for $i from 1 through 100 {
.animateMe:nth-child(#{$i}) {
animation-delay: .5s * $i;
}
}
Menggunakan Angular, saya menerapkan kelas animateMe
pada div hanya ketika kondisi ngClass
terpenuhi.
<div id="neededfoodnames" *ngFor="let list of lists; let i = index" [ngClass]="{'animateMe':lists[i-1]?.category != list.category && animate == true}">
.....
</div>
Ini seharusnya hanya menerapkan kelas jika kategori item berbeda dari kategori item terakhir dan animate disetel ke true, dan memang demikian.
animate: boolean = true;
Ini menghasilkan 4 div yang memiliki kelas animateMe
. Namun, penundaan animasi tidak diterapkan dengan benar karena div pertama dan kedua memiliki penundaan yang benar masing-masing sebesar 0,5 detik dan 1 detik, sedangkan div ketiga memiliki penundaan yang salah sebesar 3 detik.
Div ketiga mendapatkan kelas animateMe:nth-child(6)
tetapi seharusnya animateMe:nth-child(3)
.
Bagaimana cara memperbaikinya? Saya telah membuat StackBlitz untuk masalah ini.
#neededfoodnames:nth-child(4)
tidak memiliki konten? Atau Anda mencoba menimpa css Anda dengan ng-animate - person stwilz   schedule 01.08.2018#neededfoodnames
di sana :) - person stwilz   schedule 01.08.2018#neededfoodnames
. KelasanimateMe
seharusnya hanya diterapkan pada 4 div, dan oleh karena ituanimateMe:nth-child(6)
seharusnya tidak ada, tetapi memang ada. - person cfoster5   schedule 01.08.2018lists[i-1]?.category
saya melihat ada kesalahan ketik di sini. titik setelah tanda tanya di operator ternary Anda. - person DragonKnight   schedule 01.08.2018