Komponen Motion & Animasi Asas
Gantikan div dengan motion.div dan gunakan prop animate, initial serta exit untuk animasi ringkas.
Komponen Motion & Animasi Asas ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah Framer Motion?
Framer Motion ialah pustaka animasi React. Gantikan elemen HTML dengan padanan motion.* untuk menambah animasi deklaratif melalui sifat dan bukannya bingkai utama CSS.
Pemasangan
Pasang Framer Motion dan import motion daripadanya.
npm install framer-motion
import { motion } from 'framer-motion';Animasi Pertama Anda
Gantikan <div> dengan <motion.div> dan tambahkan sifat initial, animate serta transition.
<motion.div
initial={{ opacity: 0, y: -20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.4 }}
>
Hello, Framer Motion!
</motion.div>Sifat Permulaan
initial mentakrifkan keadaan permulaan animasi — tempat elemen bermula sebelum dianimasikan kepada animate.
// Fade in from left
<motion.div
initial={{ opacity: 0, x: -50 }}
animate={{ opacity: 1, x: 0 }}
/>
// Scale up from center
<motion.button
initial={{ scale: 0 }}
animate={{ scale: 1 }}
/>Sifat Animasi
animate mentakrifkan keadaan sasaran. Framer Motion menginterpolasi antara initial dan animate menggunakan fizik pegas atau pelicinan yang ditentukan.
<motion.h1
initial={{ opacity: 0 }}
animate={{ opacity: 1, color: '#4f46e5' }}
transition={{ duration: 0.6, ease: 'easeOut' }}
>
Welcome
</motion.h1>Pilihan Peralihan
Sifat transition mengawal cara animasi bergerak: duration, ease, delay, type ('spring' | 'tween' | 'inertia').
transition={{
type: 'spring',
stiffness: 300,
damping: 20,
delay: 0.2,
}}Bingkai Utama dalam Animasi
Hantar tatasusunan kepada mana-mana nilai yang dianimasikan untuk mencipta animasi bingkai utama yang melalui berbilang keadaan.
<motion.div
animate={{ x: [0, 30, 0] }}
transition={{ duration: 1, repeat: Infinity, ease: 'easeInOut' }}
/>Keadaan Lerap dan Ketik
whileHover dan whileTap mentakrifkan keadaan animasi untuk interaksi melayang dan menekan, lalu kembali secara automatik apabila gerak isyarat berakhir.
<motion.button
whileHover={{ scale: 1.05, backgroundColor: '#4f46e5' }}
whileTap={{ scale: 0.95 }}
style={{ backgroundColor: '#6366f1' }}
>
Press me
</motion.button>Menganimasikan Semasa Menatal dengan inView
Gunakan sifat whileInView untuk mencetuskan animasi apabila elemen ditatal masuk ke dalam ruang pandang.
<motion.section
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, amount: 0.3 }}
transition={{ duration: 0.5 }}
>
<h2>Revealed on scroll</h2>
</motion.section>Sifat Keluar dengan AnimatePresence
exit mentakrifkan animasi apabila komponen dinyahlekarkan. Ia hanya berfungsi apabila dibungkus dalam <AnimatePresence>.
import { motion, AnimatePresence } from 'framer-motion';
<AnimatePresence>
{isVisible && (
<motion.div
key="modal"
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0, scale: 0.95 }}
/>
)}
</AnimatePresence>useAnimate untuk Kawalan Imperatif
useAnimate() mengembalikan rujukan scope dan fungsi animate untuk kawalan animasi secara program di luar sistem sifat deklaratif.
import { useAnimate } from 'framer-motion';
function ShakeButton() {
const [scope, animate] = useAnimate();
const handleClick = async () => {
await animate(scope.current, { x: [-10, 10, -10, 0] }, { duration: 0.3 });
};
return <motion.button ref={scope} onClick={handleClick}>Shake</motion.button>;
}Mengurangkan Gerakan
Hormati keutamaan gerakan dikurangkan pengguna dengan cangkuk useReducedMotion().
import { useReducedMotion } from 'framer-motion';
function AnimatedCard() {
const shouldReduce = useReducedMotion();
return (
<motion.div
animate={{ opacity: 1, y: shouldReduce ? 0 : -20 }}
/>
);
}Semakan Pantas
Sifat Framer Motion manakah yang mentakrifkan keadaan animasi yang patut dicapai oleh komponen, iaitu sasaran komponennya?
Ringkasan
Gantikan elemen HTML dengan padanan motion.*. Gunakan initial untuk keadaan permulaan, animate untuk sasaran, transition untuk pemasaan, whileHover/whileTap untuk gerak isyarat, dan whileInView untuk animasi yang dicetuskan semasa menatal.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “Komponen Motion & Animasi Asas” percuma?
Ya — teks penuh “Komponen Motion & Animasi Asas” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Komponen Motion & Animasi Asas”?
Gantikan div dengan motion.div dan gunakan prop animate, initial serta exit untuk animasi ringkas. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Komponen Motion & Animasi Asas” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Komponen Motion & Animasi Asas
- Varian untuk Animasi Teratur
- Animasi Gerak Isyarat: Hover, Ketik & Seret
- Animasi Reka Letak & AnimatePresence