Hari ini saya akan menggariskan teknik yang anda boleh menyesuaikan diri dengan projek web anda-mencetuskan animasi ketika menatal ke rantau yang telah ditetapkan. Animasi ini akan dibuat menggunakan transformasi CSS dan peralihan CSS. Kami juga akan menggunakan jQuery untuk mengesan apabila unsur -unsur dapat dilihat dan menambah/mengeluarkan kelas yang sesuai.
Bagi mereka yang ingin melihat contoh -contoh ini dalam tindakan, anda boleh melompat terus ke demo.
Takeaways Key
- Animasi berasaskan skrol boleh dibuat menggunakan jQuery dan CSS3, memberikan pengalaman interaktif untuk penonton. Animasi ini dicetuskan apabila tatal pengguna ke rantau yang telah ditetapkan, menjadikannya lebih menarik dan menarik secara visual.
- Teknik ini melibatkan penggunaan transformasi CSS dan peralihan CSS, dengan jQuery digunakan untuk mengesan apabila elemen dapat dilihat dan menambah/mengeluarkan kelas yang sesuai. Pertimbangan untuk pendekatan ini termasuk keserasian penyemak imbas dan kelajuan, dengan pelayar moden yang menyokong transformasi 2D dan 3D untuk animasi yang lancar.
- Proses ini melibatkan mengesan elemen animasi dalam pandangan, mengaitkan ke dalam acara tatal, mengendalikan saiz semula, dan mengira ketinggian dan lebar elemen. Animasi boleh dicetuskan apabila elemen berada di dalam viewport, yang membolehkan transformasi atau kesan tambahan untuk dirantai untuk antara muka interaktif.
- Contoh animasi tatal termasuk gelongsor unsur-unsur dari kiri, unsur-unsur pudar dari bawah ke atas, dan pelbagai langkah memantul animasi. Teknik ini boleh disesuaikan untuk pelbagai projek web, seperti memaparkan profil kakitangan atau maklumat kursus.
Sebab utama kita mahu mencetuskan animasi pada tatal, supaya mereka mengaktifkan sama seperti pengguna menatal elemen ke dalam pandangan.
Kami mungkin mahu memudar unsur -unsur, atau memberikan transformasi yang menarik dan ini hanya akan masuk akal apabila pengguna benar -benar dapat melihatnya.
animasi dengan CSS atau dengan jQuery?
Terdapat kebaikan dan keburukan untuk setiap pendekatan. JQuery (baca JavaScript) membolehkan anda menghidupkan perkara -perkara yang CSS tidak (seperti kedudukan tatal, atau atribut elemen), manakala animasi CSS boleh menjadi sangat menarik bagi pemaju yang lebih suka meletakkan semua animasi dan logik persembahan mereka dalam CSS lapisan.
Saya akan menggunakan transformasi melalui CSS, namun selalu ada pembolehubah untuk dipertimbangkan bergantung pada keadaan anda. Saya akan mengambil kira faktor berikut:
Keserasian penyemak imbas
Oleh kerana penyelesaian kami akan berdasarkan transformasi, keserasian pelayar kami akan terhad kepada mereka yang menyokong sama ada transformasi 2D atau transformasi 3D.
Semua pelayar moden akan menyokong transformasi 3D dan beberapa pelayar warisan yang lebih tua seperti Internet Explorer 9 dan Opera 11.5 akan menyokong transformasi 2D. Sokongan keseluruhan untuk kedua -dua desktop dan pelayar mudah alih adalah komprehensif.
Kaedah Animate JQuery berfungsi dalam pelayar (waras), dengan syarat anda menggunakan versi 1.x perpustakaan. JQuery 2.x Sokongan dikeluarkan untuk IE8 dan ke bawah, jadi hanya gunakan ini jika anda tidak perlu menyokong pelayar warisan (bertuah anda!).
kelajuan
Kami mahu animasi yang cepat dan lancar, terutamanya ketika datang ke peranti mudah alih. Oleh itu, yang terbaik untuk menggunakan peralihan dan transformasi jika mungkin.
Contohnya akan menggunakan transformasi 3D dengan 2D jatuh untuk penyemak imbas yang lebih tua. Kami mahu memaksa pecutan perkakasan untuk kelajuan, jadi transformasi 3D adalah suatu keharusan (kami akan menggunakan Translate3D bersama -sama dengan fungsi lain yang menyebabkan GPU dipercepat rendering).
Kaedah Animate JQuery jauh lebih perlahan daripada transformasi bantuan GPU, jadi kami hanya akan menggunakan jQuery untuk pengendalian / pengiraan acara kami, bukan untuk animasi kami sendiri (seperti yang kita mahu mereka menjadi lancar).nota sampingan
kita semua tahu bahawa jQuery! == JavaScript, kan? Nah, ternyata menggunakan vanila JS untuk animasi mungkin tidak menjadi idea yang buruk selepas semua. Walaupun yang berada di luar skop tutorial ini, berikut adalah dua artikel yang sangat baik mengenai subjek bagi mereka yang berminat untuk mengetahui lebih lanjut:
- CSS vs JS Animation: Mana yang lebih cepat?
- Busting Mitos: Animasi CSS vs JavaScript
mengesan elemen animasi dalam pandangan
Titik keseluruhan teknik ini adalah untuk melihat melalui semua elemen kami yang kami tandakan sebagai animatable dan kemudian menentukan sama ada mereka sedang dalam viewport. Mari kita melangkah bagaimana kita akan mencapai ini:
pemilih Caching
Scrolling adalah perniagaan yang mahal. Jika anda melampirkan pendengar acara ke acara tatal, ia akan membakar banyak kali apabila pengguna menatal halaman. Memandangkan kami akan memanggil fungsi dimensi / pengiraan kami apabila tatal pengguna, adalah idea yang baik untuk menyimpan unsur -unsur yang dikembalikan oleh pemilih kami dalam pembolehubah. Ini dikenali sebagai pemilih caching dan mengelakkan kami menanyakan dom berulang kali.
Dalam skrip kami, kami akan merujuk kedua -dua objek tetingkap dan koleksi unsur -unsur yang kami mahu bernyawa.
<span>//Cache reference to window and animation items </span><span>var $animation_elements = $('.animation-element'); </span><span>var $window = $(window);</span>Perhatikan tanda dolar di hadapan pembolehubah. Ini adalah konvensyen untuk menunjukkan bahawa mereka memegang objek jQuery, atau pengumpulan objek.
mengaitkan ke dalam acara tatal
Seterusnya, kami membuat pengendali acara kami yang mendengar acara tatal. Ini akan membakar apabila kita menatal halaman. Kami menyampaikannya kepada fungsi check_if_in_view kami (yang akan kami dapatkan dalam satu minit). Setiap kali acara tatal dipecat, fungsi ini akan dilaksanakan.
<span>//Cache reference to window and animation items </span><span>var $animation_elements = $('.animation-element'); </span><span>var $window = $(window);</span>
Pengendalian saiz semula
Kerana kita mengira ketinggian dan lebar kita perlu faktor perubahan orientasi bersama dengan saiz semula umum.
Kami boleh mengemas kini pengendali acara kami untuk mendengar kedua -dua skrol dan mengubah saiz acara. Ini akan membolehkan fungsi pengesanan kami berfungsi apabila kami mengubah saiz atau menukar orientasi.
$<span>window.on('scroll', check_if_in_view);</span>
Di samping itu, kami juga menggunakan kaedah pencetus jQuery untuk mencetuskan acara tatal sebaik sahaja DOM siap. Kami melakukan ini supaya jika mana -mana elemen yang sepatutnya animasi berada dalam viewport, mereka akan dikesan seperti yang dilihat dan animasi yang digunakan seolah -olah kami telah menatal.
$<span>window.on('scroll resize', check_if_in_view);</span>
Pengesanan kedudukan tatal
Bahagian pengesanan sebenar contoh ini berasal dari skrip berikut.
$<span>window.trigger('scroll');</span>
mari memecahkan apa yang berlaku di sini.
fungsi check_if_in_view dipanggil pada mulanya apabila DOM siap dan kemudian setiap kali kita mengubah saiz atau tatal.
kami mendapat ketinggian semasa tetingkap, bersama dengan kedudukan atas dan bawahnya sehingga kami tahu kawasan yang kami lihat.
kita pergi dan mencari semua item yang akan menghidupkan (disimpan dalam pembolehubah $ animasi_elements). Bagi setiap elemen ini, kami mengumpulkan ketinggiannya bersama dengan kedudukan atas dan bawahnya (jadi kami tahu di mana ia tinggal di halaman).
Kami membandingkan setiap item untuk melihat sama ada kedudukan bawahnya lebih besar daripada kedudukan teratas tetingkap tetapi juga bahawa kedudukan atas item kurang daripada kedudukan bawah tetingkap.
Berikut adalah contoh visual

mengira ketinggian dan lebar
Dalam fungsi pengesanan kami, kami perlu mendapatkan ketinggian dan kedudukan pelbagai elemen untuk mengira perkara dengan betul, ini adalah di mana kami telah menggunakan fungsi ketinggian jQuery. Adalah penting untuk mengalami pecahan bagaimana fungsi ketinggian ini berfungsi
ketinggian () dan lebar ()
fungsi ketinggian () dan lebar () mengembalikan ketinggian atau lebar elemen. Mereka mengecualikan semua padding, sempadan dan margin.

Untuk pecahan penuh melawat dokumentasi ketinggian atau lebar.
innerheight () dan innerWidth ()
fungsi innerheight () dan innerWidth () mengembalikan ketinggian atau lebar elemen termasuk padding tambahan (namun ia tidak termasuk kedua -dua sempadan dan margin)

Untuk pecahan penuh lawati dokumentasi innerheight atau innerwidth.
outerheight () dan oUerberwidth ()
fungsi outerheight () dan oUerberwidth () mengembalikan ketinggian atau lebar elemen dan termasuk padding dan sempadannya.
Di samping itu, anda juga boleh menentukan untuk memasukkan marginnya dengan meluluskan nilai yang benar kepada fungsi.

untuk pecahan penuh Lawati dokumentasi outerheight atau oUterwidth
Contoh animasi tatal
Disenaraikan di bawah adalah satu siri animasi yang menggunakan asas -asas apa yang telah kita bincangkan. Contoh-contoh ini akan mencari elemen animasi dan menggunakan kelas dalam pandangan aktif apabila mereka berada dalam pandangan.
unsur-unsur yang anda ingin bergerak harus semua mempunyai kelas standard seperti elemen animasi yang menetapkan kedudukannya menjadi relatif atau mutlak. Di samping itu, jika anda akan membuat pelbagai kesan, anda boleh membuat kelas yang sepadan seperti slaid-kiri yang boleh digabungkan dengan kelas dalam pandangan. Anda kemudiannya harus memohon transformasi ke kelas seperti elemen animasi.slide- left.inview
luncurkan dari kiri
Untuk contoh pertama kami, kami akan meluncur di unsur -unsur dari kiri apabila mereka memasuki Viewport. Kami mencapai ini dengan menggunakan terjemahan3D pada paksi unsur -unsur kami.
Lihat animasi pena CSS pada tatal - slaid dari kiri oleh SitePoint (@SitePoint) pada codepen.
Dalam contoh ini kami telah menggunakannya untuk memaparkan profil kakitangan, tetapi anda boleh memanfaatkan semula fungsi yang sama untuk meluncur dalam mana-mana unsur yang anda perlukan.
pudar dari bawah
Kali ini kita akan memudar unsur -unsur kita dari bawah ke atas sebagai skrol pengguna. Kami mencapai ini melalui Terjemahan3D pada paksi Y elemen.
Untuk contoh ini saya telah menyenaraikan maklumat kursus mengenai topik dalam struktur grid. Apabila pengguna menatal ke bawah, setiap kad yang dipandang akan memudar dan bergerak ke atas, memaparkan maklumat mengenai kursus.
Lihat animasi pena CSS pada tatal - pudar dari bawah ke atas oleh SitePoint (@SitePoint) pada codepen.
animasi memantul pelbagai langkah
Untuk contoh terakhir kami, kami akan menggunakan animasi multistage. Untuk melakukan ini, kami akan mentakrifkan animasi kekunci utama yang menggabungkan putaran dengan terjemahan. Animasi jenis ini boleh membantu mempamerkan kawasan laman web anda (untuk contoh ini kami mempamerkan profil ahli kakitangan).
Lihat animasi pena CSS pada tatal - Multi langkah langkah oleh SitePoint (@SitePoint) pada Codepen.
dari mana dari sini?
dari sini anda boleh mengambil konsep yang telah anda pelajari dan memohon kepada projek anda.
Sekarang anda boleh mengesan apabila elemen dilihat, anda boleh mengikat transformasi atau kesan tambahan untuk mewujudkan antara muka interaktif. Contohnya apabila elemen memasuki viewport (dan selepas transformasinya), anda boleh mengubah elemen tambahan seperti memudar dalam tajuk, berskala dalam imej dan lain -lain
Adakah anda sudah menggunakan kesan ini dalam projek anda? Atau adakah anda berfikir bahawa animasi terlalu banyak digunakan dan mengurangkan pengalaman pengguna? Sama ada saya suka mendengar daripada anda dalam komen.
Ambil kemahiran CSS anda ke peringkat seterusnya dengan Buku CSS Master, edisi ke -2 oleh Tiffany B. Brown - meliputi animasi CSS, peralihan, transformasi dan banyak lagi. Soalan Lazim (Soalan Lazim) Mengenai Animasi Berbasis Skrol dengan JQuery dan CSS3
Apakah keperluan asas untuk mencipta animasi berasaskan skrol menggunakan jQuery dan CSS3? Anda juga perlu mempunyai perpustakaan jQuery termasuk dalam projek anda. JQuery adalah perpustakaan JavaScript yang cepat, kecil, dan kaya ciri yang memudahkan dokumen HTML melintasi, pengendalian acara, dan animasi. CSS3, sebaliknya, adalah evolusi terkini bahasa Lembaran Gaya Cascading dan bertujuan untuk memperluaskan CSS2.1. Ia membawa banyak perkara baru yang ditunggu-tunggu, seperti sudut bulat, bayang-bayang, kecerunan, peralihan atau animasi. Mewujudkan animasi berasaskan skrol, anda perlu memasukkan perpustakaan jQuery dalam fail HTML anda. Anda boleh memuat turunnya dari laman web JQuery atau memasukkannya terus dari rangkaian penghantaran kandungan (CDN). Sebaik sahaja anda memasukkan jQuery, anda boleh mula menulis kod JavaScript anda dalam fail .js yang berasingan atau dalam tag skrip dalam fail HTML anda. Anda kemudian boleh menggunakan kaedah JQuery's .animate () untuk membuat animasi. Untuk animasi CSS3, anda boleh menggunakan kerangka kunci dan harta animasi.
Bolehkah saya mengawal kelajuan animasi berasaskan skrol dalam jQuery? dalam jQuery. Kaedah .animate () menerima parameter tempoh, yang menentukan berapa lama animasi akan dijalankan. Tempohnya ditentukan dalam milisaat; Nilai yang lebih tinggi menunjukkan animasi yang lebih perlahan, bukan yang lebih cepat.
Bagaimana saya boleh membuat animasi berasaskan skrol saya lebih lancar? -Out 'Nilai harta peralihan CSS3-fungsi-fungsi. Nilai ini menentukan bahawa animasi harus bermula dengan perlahan, mempercepatkan di tengah, dan kemudian melambatkan pada akhir. Ini dapat memberikan rasa yang lebih semula jadi dan lancar kepada animasi anda.
bagaimana saya boleh mencetuskan animasi apabila pengguna menatal ke titik tertentu pada halaman? halaman. Di dalam kaedah .scroll (), anda boleh menggunakan kaedah .scrollTop () untuk mendapatkan kedudukan menegak semasa bar tatal. Anda kemudian boleh menggunakan pernyataan jika untuk memeriksa sama ada kedudukan tatal berada di luar titik tertentu, dan jika ya, mencetuskan animasi. Boleh menggunakan animasi CSS3 tanpa jQuery. CSS3 memperkenalkan peraturan @KeyFrames dan harta animasi, yang membolehkan anda membuat animasi semata -mata menggunakan CSS. Walau bagaimanapun, jQuery dapat memberikan lebih banyak kawalan dan fleksibiliti ke atas animasi anda, seperti sifat animasi yang berubah secara dinamik berdasarkan interaksi pengguna. Anda boleh menghentikan animasi berasaskan tatal dalam jQuery menggunakan kaedah .stop (). Kaedah ini menghentikan animasi yang sedang berjalan pada elemen yang dipilih. Untuk menjeda animasi, ia agak lebih kompleks kerana jQuery tidak secara asli menyokong animasi berhenti. Walau bagaimanapun, anda boleh mencapai ini dengan menggunakan plugin atau secara manual menjejaki keadaan animasi dan kemajuan. Teknik di mana imej latar belakang bergerak lebih perlahan daripada imej latar depan, mewujudkan ilusi kedalaman. Anda boleh mencapai kesan ini menggunakan jQuery dan CSS3 dengan mengubah kelajuan pergerakan imej latar belakang berhubung dengan kelajuan skrol halaman. > Ya, anda boleh menghidupkan pelbagai sifat CSS sekaligus menggunakan kaedah JQuery's .animate (). Anda hanya perlu memasukkan sifat-sifat yang anda ingin menghidupkan sebagai pasangan nilai utama dalam parameter objek sifat dari kaedah .animate (). 🎜>
Untuk memastikan animasi berasaskan tatal anda berfungsi di seluruh pelayar yang berbeza, anda harus sentiasa menggunakan awalan vendor untuk sifat CSS3. Awalan ini memastikan bahawa sifat -sifat diiktiraf dalam semua pelayar, walaupun mereka masih eksperimen. Untuk animasi jQuery, anda tidak perlu bimbang tentang keserasian pelayar sebagai jQuery menjaga ini untuk anda.Atas ialah kandungan terperinci Membuat animasi berasaskan tatal menggunakan jQuery dan CSS3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Ya, teras enjin JavaScript ditulis dalam C. 1) Bahasa C menyediakan prestasi yang efisien dan kawalan asas, yang sesuai untuk pembangunan enjin JavaScript. 2) Mengambil enjin V8 sebagai contoh, terasnya ditulis dalam C, menggabungkan kecekapan dan ciri-ciri berorientasikan objek C. 3) Prinsip kerja enjin JavaScript termasuk parsing, penyusun dan pelaksanaan, dan bahasa C memainkan peranan penting dalam proses ini.

JavaScript adalah di tengah -tengah laman web moden kerana ia meningkatkan interaktiviti dan dinamik laman web. 1) Ia membolehkan untuk menukar kandungan tanpa menyegarkan halaman, 2) memanipulasi laman web melalui Domapi, 3) menyokong kesan interaktif kompleks seperti animasi dan drag-and-drop, 4) mengoptimumkan prestasi dan amalan terbaik untuk meningkatkan pengalaman pengguna.

C dan JavaScript mencapai interoperabilitas melalui webassembly. 1) Kod C disusun ke dalam modul WebAssembly dan diperkenalkan ke dalam persekitaran JavaScript untuk meningkatkan kuasa pengkomputeran. 2) Dalam pembangunan permainan, C mengendalikan enjin fizik dan rendering grafik, dan JavaScript bertanggungjawab untuk logik permainan dan antara muka pengguna.

JavaScript digunakan secara meluas di laman web, aplikasi mudah alih, aplikasi desktop dan pengaturcaraan sisi pelayan. 1) Dalam pembangunan laman web, JavaScript mengendalikan DOM bersama -sama dengan HTML dan CSS untuk mencapai kesan dinamik dan menyokong rangka kerja seperti JQuery dan React. 2) Melalui reaktnatif dan ionik, JavaScript digunakan untuk membangunkan aplikasi mudah alih rentas platform. 3) Rangka kerja elektron membolehkan JavaScript membina aplikasi desktop. 4) Node.js membolehkan JavaScript berjalan di sisi pelayan dan menyokong permintaan serentak yang tinggi.

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Dreamweaver CS6
Alat pembangunan web visual
