Latihan 1 dari materi Intersection Observer di Web Animation — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi tiga function kecil di balik animasi kartu yang muncul saat di-scroll.
createObserverConfig(threshold, rootMargin) mengembalikan object option IntersectionObserver dengan urutan kunci root, threshold, rootMargin: root selalu null (layar), dua lainnya dari argumen.
getAnimationClass(direction) mengembalikan nama kelas menurut arah gerak: "up" jadi "animate-from-bottom", "down" jadi "animate-from-top", "left" jadi "animate-from-right", "right" jadi "animate-from-left", dan arah lain apa pun jadi "animate-fade".
createStaggerDelays(count, baseDelay) mengembalikan array berisi count angka: elemen ke-i (mulai dari 0) mendapat i * baseDelay.
Enam console.log di kode awal biarkan saja. Yang dinilai, baris console-nya harus persis:
Nilai kembaliannya juga dinilai langsung: getAnimationClass("down") + "|" + getAnimationClass("right") harus "animate-from-top|animate-from-left", createStaggerDelays(0, 100).length harus 0, dan createObserverConfig(0.75, "5px").threshold harus 0.75.
Hint
Option IntersectionObserver cuma object biasa. Nama kelas menyebut asal elemen: yang bergerak naik datang dari bawah. Stagger berarti tiap elemen menunggu sedikit lebih lama dari sebelumnya.
createObserverConfig mengembalikan object dengan root: null lalu threshold dan rootMargin dari argumen. getAnimationClass bisa memakai object peta dari arah ke kelas, dengan || untuk nilai default. createStaggerDelays membuat array sepanjang count dan mengisi tiap posisi dengan index dikali baseDelay.