Latihan 1 dari materi CSS Keyframes di Web Animation — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function yang merakit CSS animasi sebagai string satu baris.
buildKeyframes(name, steps): steps adalah array objek { percent, properties }, dan properties adalah objek CSS seperti { opacity: 0 }. Tiap properti jadi properti: nilai;, beberapa properti dipisah satu spasi. Tiap langkah jadi percent% { ... }. Semua langkah dipisah satu spasi, lalu dibungkus @keyframes name { ... }.
buildAnimationShorthand(name, duration, easing, iterationCount) mengembalikan keempat argumen dengan urutan itu, dipisah satu spasi.
Empat console.log di kode awal biarkan saja. Yang dinilai, baris console-nya harus persis:
Nilai kembaliannya juga dinilai langsung: buildKeyframes("pop", [{ percent: 0, properties: { transform: "scale(1)", opacity: 0.5 } }]) harus "@keyframes pop { 0% { transform: scale(1); opacity: 0.5; } }", dan buildAnimationShorthand("pulse", "2s", "ease-in-out", 3) harus "pulse 2s ease-in-out 3".
Hint
Kerjakan dari dalam ke luar: satu properti jadi "opacity: 0;", satu langkah jadi "0% { opacity: 0; }", lalu semua langkah dibungkus "@keyframes nama { ... }".
Object.entries(step.properties) memberi pasangan [properti, nilai]; ubah tiap pasangan jadi properti + ": " + nilai + ";" lalu join(" "). Satu langkah = step.percent + "% { " + isinya + " }". buildAnimationShorthand cukup menggabungkan keempat argumen dengan join(" ").
const body = steps.map((step) => step.percent + "% { " + Object.entries(step.properties).map(([p, v]) => p + ": " + v + ";").join(" ") + " }").join(" "); return "@keyframes " + name + " { " + body + " }"; dan return [name, duration, easing, iterationCount].join(" ");
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...