国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah hujung hadapan web tutorial js Cipta Animasi Tatal yang Cantik Menggunakan Gerakan Framer

Cipta Animasi Tatal yang Cantik Menggunakan Gerakan Framer

Oct 31, 2024 pm 07:02 PM

pengenalan

Menatal ialah sesuatu yang kami lakukan setiap hari pada skrin kami, tetapi pernahkah anda terfikir tentang cara menatal mempengaruhi pengalaman pengguna? Dalam dunia hari ini, menatal juga telah menjadi cara untuk memberikan pengguna anda pengalaman yang lancar dan memuaskan. Dengan alatan seperti Framer Motion, pembangun boleh menukar tatal menjadi pengalaman yang menarik dan menarik secara visual.

Hari ini, kami akan meneroka cara yang berbeza untuk menganimasikan tatal. Kami akan belajar tentang jenis animasi skrol dan cara ia digunakan. Kami akan memahami coraknya supaya kami boleh menambahkan animasi tatal pada mana-mana projek atau tapak kami.

Kami akan mencipta animasi dalam Next.js menggunakan Framer Motion. Jika anda lebih suka menggunakan mana-mana rangka kerja atau pustaka lain, anda boleh menggunakannya.

Jadi, tanpa berlengah lagi, mari mulakan.

Jenis Animasi Tatal

Terdapat dua jenis animasi skrol:

  1. Tatal-dipautkan animasi: Animasi yang bergerak atau berubah berdasarkan sejauh mana anda telah menatal, elemen akan dikemas kini secara berterusan semasa anda menatal.

  2. Tatal-dicetuskan animasi: Animasi biasa dicetuskan apabila elemen memasuki atau meninggalkan port pandangan.

Create Beautiful Scroll Animations Using Framer Motion

Dengan gerakan Framer, anda boleh mencapai kedua-duanya. Mari fahami kedua-duanya satu persatu.

Animasi berpaut tatal

Animasi dipautkan tatal ialah animasi yang kemajuan atau pergerakan animasi dipautkan secara langsung sehingga sejauh mana pengguna telah menatal. Dalam jenis animasi ini, elemen berubah secara berterusan apabila pengguna menatal.

Ini bermakna jika anda berada di titik satu maka animasi akan menjejaki anda, dan ia juga akan berada di titik satu. Dan, Jika anda menatal dan pergi ke titik dua, animasi akan mengikuti anda ke titik itu.

Ciri Utama

  • Animasi disegerakkan dengan kemajuan tatal.
  • Sambil anda menatal, animasi dikemas kini dalam masa nyata berdasarkan jumlah yang anda telah tatal.
  • Animasi ini boleh melibatkan pengalihan, penskalaan, putaran atau menukar rupa elemen, biasanya menggunakan useScroll dan gunakan cangkuk Transform(kita akan belajar tentang perkara ini di hadapan) dalam Framer Motion.

Animasi yang dicetuskan tatal

Animasi yang dicetuskan tatal berlaku apabila elemen memasuki atau meninggalkan port pandangan tertentu semasa anda menatal. Ini bermakna animasi bermula hanya apabila pengguna menatal ke bahagian tertentu halaman.

Jadi, jika saya berada di titik satu dan, saya menetapkan animasi yang dicetuskan tatal untuk titik tiga maka animasi ini akan berlaku pada titik tiga. Ini bermakna animasi akan dicetuskan hanya apabila saya mencapai ruang pandang itu (dalam kes ini ia adalah titik tiga)

Untuk memahami ini, anda boleh menyemak video ini?. Di sini, anda akan melihat apabila elemen oren itu datang dalam port pandangan bermakna ia boleh dilihat sepenuhnya pada skrin dan kemudian, pada masa itu, menunjukkan bar navigasi.

Ciri Utama

  • Dicetuskan oleh Kedudukan Tatal: Animasi diaktifkan sebaik sahaja kedudukan tatal tertentu dicapai, dan bukannya disegerakkan secara berterusan dengan tatal, seperti animasi dipautkan tatal. Ini biasanya dicapai menggunakan keadaan seperti whileInView atau onEnter.

  • Animasi Diskret: Tidak seperti animasi dipaut tatal, animasi dicetuskan tatal berlaku pada saat tertentu, seperti apabila elemen masuk atau keluar dari tempat pandang. Ini mungkin termasuk fade-in, slaid-in atau kesan visual lain yang berlaku sekali semasa pengguna menatal melepasi titik tertentu.

  • Animasi Satu Kali atau Boleh Berulang: Animasi dicetuskan tatal boleh ditetapkan untuk dimainkan sekali sahaja apabila elemen mula-mula muncul, atau ia boleh mengulangi bila-bila masa elemen memasuki port pandangan sekali lagi, bergantung pada kes penggunaan.

  <motion.div
    initial="hidden"
    whileInView="visible"
    viewport={{ once: true }}  // animation will occur only once
  />

Apa Seterusnya?

Sekarang kita memahami kedua-dua jenis animasi skrol ini dan perbezaannya, mari kita mula memahami corak yang digunakan dalam mencipta animasi ini. Ini akan membolehkan anda menambah animasi tatal pada mana-mana projek anda.

Mula-mula, kami akan menyediakan projek untuk memahami perkara ini secara praktikal, dan kemudian kami akan mencipta kedua-dua jenis animasi.

Persediaan Projek

Mari mulakan dengan menyediakan projek Next.js kami dengan semua kebergantungan yang diperlukan. Saya akan menggunakan StalkBlitz untuk projek ini tetapi anda juga boleh menggunakan VSCode. Walaupun semua langkah saya akan beritahu anda dari perspektif VSCode supaya anda boleh mengikuti langkah tersebut.

  1. Buat projek Next.js baharu dengan TypeScript:

    npx create-next-app@latest
    

    Pada pemasangan, anda akan melihat gesaan berikut:

       What is your project named? my-app
       Would you like to use TypeScript? No / Yes
       Would you like to use ESLint? No / Yes
       Would you like to use Tailwind CSS? No / Yes
       Would you like to use `src/` directory? No / Yes
       Would you like to use App Router? (recommended) No / Yes
       Would you like to customize the default import alias (@/*)? No / Yes
       What import alias would you like configured? @/*
    
    
  2. Pasang Framer Motion

      npm install framer-motion
    
  3. Bersihkan fail lalai.
    Alih keluar kod lalai dalam app/page.tsx. Kami akan bermula dari awal untuk menumpukan pada animasi tatal kami. Fail sepatutnya kelihatan seperti ini.

        'use client';
    
          export default function Home() {
    
              return (
               <div>
    
               </div>
             );
           }
    
    
  4. Mulakan Pelayan Pembangunan

      <motion.div
        initial="hidden"
        whileInView="visible"
        viewport={{ once: true }}  // animation will occur only once
      />
    
    

Cipta Animasi Tatal

Setelah projek kami disediakan, kami boleh mencipta kedua-dua jenis animasi skrol satu demi satu. Anda boleh mula menulis kod terus dalam fail app/page.tsx atau buat komponen berasingan dan import kesemuanya dalam fail app/page.tsx.

Mencipta Animasi Berkaitan Skrol

Terdapat beberapa contoh animasi terpaut skrol:

  • Bar Kemajuan Tatal: Bar kemajuan bulat atau linear yang diisi semasa pengguna menatal ke bawah halaman.

  • Tatal Paralaks: Imej latar belakang atau elemen bergerak pada kelajuan berbeza berbanding latar depan, mencipta kesan kedalaman semasa anda menatal.

  • Elemen Pudar Masuk: Kandungan pudar ke paparan apabila pengguna menatal.

  • Transformasi Skala: Elemen bertambah atau berkurang secara beransur-ansur dalam saiz berdasarkan kemajuan tatal. dll.

Mari buat beberapa animasi. Semasa mencipta sebarang animasi dipaut tatal anda akan kerap menggunakan kaedah dan cangkuk ini daripada gerakan pembingkai.

  1. Pengesanan Kemajuan Tatal (useScroll): Menjejaki kedudukan tatal pengguna, biasanya mengembalikan nilai dari 0 hingga 1 yang mewakili kemajuan ke bawah halaman.

    npx create-next-app@latest
    
  2. Mengubah Data Tatal (useTransform): Petakan kedudukan tatal kepada sifat animasi tertentu seperti kelegapan, skala atau kedudukan. Gunakan ini untuk mencetuskan animasi seperti pudar, bergerak, berputar, berskala atau perubahan warna semasa skrol.

       What is your project named? my-app
       Would you like to use TypeScript? No / Yes
       Would you like to use ESLint? No / Yes
       Would you like to use Tailwind CSS? No / Yes
       Would you like to use `src/` directory? No / Yes
       Would you like to use App Router? (recommended) No / Yes
       Would you like to customize the default import alias (@/*)? No / Yes
       What import alias would you like configured? @/*
    
    
  3. Animasi dengan Elemen Pergerakan: Balut elemen sasaran dengan motion.div (atau mana-mana komponen gerakan) dan pautkan animasi kepada kemajuan tatal.

      npm install framer-motion
    
  4. Peralihan: Gunakan peralihan yang lancar untuk menjadikan animasi terasa cair dan semula jadi.

        'use client';
    
          export default function Home() {
    
              return (
               <div>
    
               </div>
             );
           }
    
    
  5. Keadaan Awal dan Akhir: Gunakan prop awal, animasi atau gaya untuk menentukan rupa elemen pada mulanya dan kawal keadaan akhir mereka dengan useTransform atau animasi yang dipautkan ke scrollYProgress.

        npm run dev
    

Tatal Bar Kemajuan

Kita akan mulakan dengan mencipta bar kemajuan tatal. Untuk melakukan ini, buka editor teks anda, buat komponen baharu dan mula menulis kod di dalamnya.

   const { scrollYProgress } = useScroll();

Di sini kami menggunakan:

  • useScroll: Menyediakan kedudukan skrol sebagai nilai normal antara 0 dan 1.

  • useTransform: Petakan kemajuan tatal kepada julat nilai tertentu yang kami perlukan, sama ada untuk daharray lejang bulatan kemajuan atau sebarang transformasi lain yang ingin kami gunakan.

  • Komponen gerakan: Kami menggunakan gerakan Framer Motion.bulatan untuk menghidupkan panjang lejang dalam masa nyata berdasarkan penatalan.

Animasi Teks Penskalaan Dinamik

Dalam contoh ini, kami akan mencipta kesan penskalaan dinamik terpaut tatal untuk elemen teks menggunakan Framer Motion.

  1. Menjejaki Kemajuan Tatal: Sama seperti bar kemajuan, kami menggunakan useScroll() untuk mendapatkan kemajuan tatal semasa halaman. Nilai scrollYProgress berjulat dari 0 di bahagian atas hingga 1 apabila ditatal sepenuhnya.

      <motion.div
        initial="hidden"
        whileInView="visible"
        viewport={{ once: true }}  // animation will occur only once
      />
    
    
  2. Menukar Nilai Tatal kepada Skala Kawalan: Kami menggunakan useTransform() untuk menukar kemajuan tatal kepada nilai skala yang berubah secara dinamik semasa pengguna menatal. Dalam kes ini, kami memetakan scrollYProgress daripada [0, 0.5, 1] ??kepada nilai skala [1, 2, 1], ini bermakna teks akan berkembang daripada saiz asalnya, dua kali ganda saiz di tengah skrol dan mengecil kembali apabila anda mencapai bahagian bawah.

    npx create-next-app@latest
    
  3. Menghidupkan Elemen Teks: Di dalam komponen motion.h1, kami akan menggunakan scaleValue kepada sifat gaya untuk menganimasikan kesan penskalaan teks dengan lancar berdasarkan kedudukan tatal. Teks akan "tumbuh" dan "mengecut" semasa pengguna menatal.

       What is your project named? my-app
       Would you like to use TypeScript? No / Yes
       Would you like to use ESLint? No / Yes
       Would you like to use Tailwind CSS? No / Yes
       Would you like to use `src/` directory? No / Yes
       Would you like to use App Router? (recommended) No / Yes
       Would you like to customize the default import alias (@/*)? No / Yes
       What import alias would you like configured? @/*
    
    
  4. Menggayakan Bahagian: Teks dipusatkan dalam bahagian skrin penuh yang mempunyai kecerunan latar belakang untuk menambah daya tarikan visual. Latar belakang mencipta kecerunan licin daripada ungu kepada nila, menjadikan teks dinamik lebih menonjol.

      npm install framer-motion
    

Konsep Digunakan:

  • useScroll: Kami menggunakan cangkuk ini sekali lagi untuk menjejak kemajuan tatal halaman, yang berfungsi sebagai pencetus untuk animasi.

  • useTransform: Di sini, kami memetakan kemajuan tatal kepada nilai skala, menjadikan teks berkembang atau mengecut dengan lancar semasa acara tatal.

  • Komponen gerakan: Komponen motion.h1 dianimasikan dalam masa nyata, dengan skala dilaraskan secara dinamik apabila nilai tatal berubah.

Kami sekali lagi menggunakan konsep yang sama. gunakanSkrol gunaUbah dan gerakkan. Jadi, ini adalah bahagian dipautkan skrol. Sekarang mari kita cipta beberapa animasi dicetuskan tatal.

Mencipta Animasi Dicetuskan Tatal

Animasi yang dicetuskan tatal tidak kekal berfungsi dengan beberapa contoh. Anda boleh memautkan animasi skrol ke komponen halaman tertentu. Sebagai contoh, saya mempunyai halaman pendaratan dengan dua elemen dan div yang mengandungi beberapa teks. Pada masa ini, tiada animasi pada halaman, tetapi saya ingin menambah animasi yang diaktifkan apabila port pandangan muncul.

Create Beautiful Scroll Animations Using Framer Motion

Untuk ini, kami akan menggunakan animasi yang dicetuskan tatal. Seperti yang kita pelajari sebelum ini, animasi tercetus tatal berlaku apabila port pandangan tertentu kelihatan. Jadi, mari tambah elemen Framer Motion pada kod ini.

  <motion.div
    initial="hidden"
    whileInView="visible"
    viewport={{ once: true }}  // animation will occur only once
  />

  1. Kami mengimport gerakan dari framer-motion

  2. Keseluruhan komponen dibalut dengan elemen bahagian, ia mempunyai beberapa penggayaan asas.

  3. yang merupakan div gerakan pertama. Ia mengandungi kandungan utama (tajuk dan perenggan). Ia menggunakan permulaan dan whileInView untuk mencipta animasi yang dicetuskan tatal:

    initial={{ kelegapan: 0, y: 50 }}: Pada mulanya, kotak itu tidak kelihatan (kelegapan: 0) dan diletakkan 50 piksel ke bawah (y: 50).
    whileInView={{ opacity: 1, y: 0 }}: Apabila pengguna menatalnya ke paparan, ia menjadi kelihatan sepenuhnya (opacity: 1) dan bergerak ke kedudukan normalnya (y: 0).
    peralihan={{ tempoh: 0.8, ease: 'easeOut' }}: Peralihan mengambil masa 0.8 saat dan berkurangan dengan lancar.

    Kandungan di dalam digayakan dengan kelas Tailwind, memberikannya pelapik, latar belakang dengan 90% kelegapan, bayang, bucu bulat dan lebar maksimum.

  4. Selepas itu, kami mempunyai div gerakan kedua (Teks Animasi Atas-ke-Bawah). Ini menghidupkan beberapa teks yang bergerak ke bawah dari bahagian atas skrin:

    initial={{ y: -100, kelegapan: 0 }}: Teks bermula 100 piksel di atas kedudukan biasa dan tidak kelihatan.
    whileInView={{ y: 0, kelegapan: 1 }}: Apabila ia kelihatan, ia bergerak ke kedudukan biasa dan menjadi kelihatan sepenuhnya.
    peralihan={{ kelewatan: 0.5, tempoh: 0.8 }}: Terdapat kelewatan 0.5 saat sebelum animasi bermula, memberikan kesan berperingkat.

Keluaran akhir akan kelihatan seperti ini.

Kesimpulan

Itu sahaja untuk blog hari ini. Kami merangkumi 2 jenis animasi dengan beberapa kaedah yang digunakan semasa mencipta animasi ini seperti: useScroll useTransition whileInView keadaan awal dan akhir serta perkara seperti itu.

Semua kod dengan lebih banyak sampel animasi telah saya tambahkan dalam projek StalkBliz saya. Anda boleh menyemaknya di sini dan melihat lebih banyak contoh animasi skrol dengan kod. Jika anda ingin meneroka lebih banyak prop, kaedah dan contoh animasi tatal, anda boleh menyemak dokumen tatal Framer Motion di sini.

Terima kasih kerana membaca blog ini. Jika anda belajar sesuatu daripadanya, sila like dan kongsikannya dengan rakan dan komuniti anda. Saya menulis blog dan berkongsi kandungan pada JavaScript, TypeScript, Sumber Terbuka dan topik berkaitan pembangunan web lain. Jangan ragu untuk mengikuti saya di sosial saya. Saya akan berjumpa anda dalam yang seterusnya. Terima Kasih :)

  • Twitter
  • LinkedIn
  • GitHub

Atas ialah kandungan terperinci Cipta Animasi Tatal yang Cantik Menggunakan Gerakan Framer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Java vs JavaScript: Membersihkan kekeliruan Java vs JavaScript: Membersihkan kekeliruan Jun 20, 2025 am 12:27 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.

Komen JavaScript: Penjelasan ringkas Komen JavaScript: Penjelasan ringkas Jun 19, 2025 am 12:40 AM

JavaScriptcommentsareessentialformaintaining,reading,andguidingcodeexecution.1)Single-linecommentsareusedforquickexplanations.2)Multi-linecommentsexplaincomplexlogicorprovidedetaileddocumentation.3)Inlinecommentsclarifyspecificpartsofcode.Bestpractic

Bagaimana untuk bekerja dengan tarikh dan masa di JS? Bagaimana untuk bekerja dengan tarikh dan masa di JS? Jul 01, 2025 am 01:27 AM

Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.

Kenapa anda harus meletakkan tag  di bahagian bawah ? Kenapa anda harus meletakkan tag di bahagian bawah ? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju JavaScript vs Java: Perbandingan Komprehensif untuk Pemaju Jun 20, 2025 am 12:21 AM

JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection

JavaScript: Meneroka jenis data untuk pengekodan yang cekap JavaScript: Meneroka jenis data untuk pengekodan yang cekap Jun 20, 2025 am 12:46 AM

JavascripthassevenfundamentalDatypes: nombor, rentetan, boolean, undefined, null, objek, andsymbol.1) numberuseadouble-precisionformat, bergunaforwidevaluangesbutbecautiouswithfloating-pointarithmetic.2)

Apakah peristiwa yang menggelegak dan menangkap di Dom? Apakah peristiwa yang menggelegak dan menangkap di Dom? Jul 02, 2025 am 01:19 AM

Penangkapan dan gelembung acara adalah dua peringkat penyebaran acara di Dom. Tangkap adalah dari lapisan atas ke elemen sasaran, dan gelembung adalah dari elemen sasaran ke lapisan atas. 1. Penangkapan acara dilaksanakan dengan menetapkan parameter useCapture addeventlistener kepada benar; 2. Bubble acara adalah tingkah laku lalai, useCapture ditetapkan kepada palsu atau ditinggalkan; 3. Penyebaran acara boleh digunakan untuk mencegah penyebaran acara; 4. Acara menggelegak menyokong delegasi acara untuk meningkatkan kecekapan pemprosesan kandungan dinamik; 5. Penangkapan boleh digunakan untuk memintas peristiwa terlebih dahulu, seperti pemprosesan pembalakan atau ralat. Memahami kedua -dua fasa ini membantu mengawal masa dan bagaimana JavaScript bertindak balas terhadap operasi pengguna.

Apa perbezaan antara Java dan JavaScript? Apa perbezaan antara Java dan JavaScript? Jun 17, 2025 am 09:17 AM

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza. 1.Java adalah bahasa yang ditaip dan disusun secara statik, sesuai untuk aplikasi perusahaan dan sistem besar. 2. JavaScript adalah jenis dinamik dan bahasa yang ditafsirkan, terutamanya digunakan untuk interaksi web dan pembangunan front-end.

See all articles