mata teras
- Buat menu navigasi melekat animasi tanpa memerlukan pemalam jQuery. Menu ini direka untuk meluncur dari pandangan apabila menatal ke bawah dan luncurkan kembali ke pandangan dengan kesan lut ketika menatal.
- Proses ini melibatkan penubuhan struktur HTML asas, menggunakan gaya untuk elemen utama, dan kemudian menghidupkan menu. Animasi itu dicetuskan dengan melampirkan pengendali acara ke acara tatal dan menggunakan transformasi CSS untuk menyesuaikan kedudukan dan penampilan menu mengikut arah menatal.
- Penyelesaian penyesuaian ini menyediakan lebih banyak fleksibiliti reka bentuk dan membolehkan penyesuaian mudah dilakukan mengikut keperluan khusus. Hasil akhirnya adalah menu navigasi interaktif dinamik yang meningkatkan pengalaman pengguna.
Artikel ini akan menunjukkan cara membuat menu navigasi melekit animasi menggunakan JavaScript, CSS, dan HTML tulen. Produk akhir akan meleret ketika anda menatal ke bawah halaman, dan slaid kembali ke pandangan ketika anda menatal ke atas (dengan kesan lut yang bergaya). Teknologi ini digunakan oleh laman web terkenal seperti Medium dan Hacker Noon.
Selepas membaca, anda akan dapat menggunakan teknologi ini dalam reka bentuk anda, dengan harapan dapat mencapai hasil yang baik. Terdapat demonstrasi pada akhir artikel untuk pembaca segera untuk merujuk.
menu navigasi melekit: Struktur HTML Asas
Berikut adalah kerangka kod HTML asas yang akan kami gunakan. Tidak ada yang menarik di sini.
<div class="container"> <div class="banner-wrapper"> <div class="banner"> <div class="top"> </div> <div class="nav"> </div> </div> </div> <div class="content"> </div> </div>
Gunakan beberapa gaya
Mari tambahkan beberapa gaya ke unsur -unsur utama.bekas utama
kita perlu mengeluarkan sebarang gaya penyemak imbas yang wujud dan menetapkan lebar bekas kepada 100%.
*{ box-sizing:border-box; padding: 0; margin: 0; } .container{ width: 100%; }Banner Container
Ini adalah pembalut untuk menu navigasi. Ia sentiasa melekit dan slaid untuk menyembunyikan atau menunjukkan menu navigasi semasa anda menatal halaman secara menegak. Kami memberikan nilai z-indeks untuk memastikan ia muncul di atas kandungan.
.banner-wrapper { z-index: 4; transition: all 300ms ease-in-out; position: fixed; width: 100%; }Banner Section
Ini mengandungi menu navigasi. Apabila halaman menatal ke atas atau ke bawah, perubahan kedudukan dan warna latar belakang animasi oleh harta peralihan CSS.
bahagian kandungan
.banner { height: 77px; display: flex; flex-direction: column; justify-content: space-around; background: rgba(162, 197, 35, 1); transition: all 300ms ease-in-out; }
Bahagian ini akan mengandungi imej dan teks latar belakang. Kami akan menambah kesan paralaks ke halaman ini kemudian dalam artikel ini.
.content { background: url(https://unsplash.it/1400/1400?image=699) center no-repeat; background-size: cover; padding-top: 100%; }Animasi menu
Pertama, kita perlu melampirkan pengendali acara ke acara tatal supaya menu boleh dipaparkan dan tersembunyi dengan sewajarnya apabila skrol pengguna. Kami juga meletakkan segala -galanya dalam satu IIFE untuk mengelakkan konflik dengan kod lain yang berjalan pada halaman yang sama.
<div class="container"> <div class="banner-wrapper"> <div class="banner"> <div class="top"> </div> <div class="nav"> </div> </div> </div> <div class="content"> </div> </div>
Tetapkan beberapa nilai awal
Kami akan menggunakan pemboleh ubah refoffset untuk menunjukkan jarak tatal pengguna ke bawah. Apabila halaman dimuatkan, ia dimulakan kepada 0. Kami akan menggunakan pembolehubah Bannerheight untuk menyimpan ketinggian menu dan juga memerlukan rujukan kepada elemen .banner-wrapper
dan .banner
dom.
*{ box-sizing:border-box; padding: 0; margin: 0; } .container{ width: 100%; }
Buat arah menatal
Seterusnya, kita perlu menentukan arah menatal supaya menu dapat dipaparkan atau disembunyikan dengan sewajarnya.
kita akan bermula dengan pembolehubah yang dipanggil NewOffset. Apabila halaman beban, ini akan ditetapkan kepada nilai window.scrollY
- bilangan piksel dokumen sedang menatal secara menegak (jadi pada mulanya 0). Apabila skrol pengguna, NewOffset akan meningkat atau berkurangan dengan sewajarnya. Sekiranya ia lebih besar daripada nilai yang disimpan dalam bannerheight, maka kita tahu bahawa menu kami telah ditatal dari pandangan.
.banner-wrapper { z-index: 4; transition: all 300ms ease-in-out; position: fixed; width: 100%; }
Menatal ke bawah akan menjadikan NewOffset lebih besar daripada RefOffset, dan menu navigasi harus meluncur dan hilang. Menatal ke atas akan menjadikan NewOffset lebih kecil daripada refoffset, dan menu navigasi harus meluncur kembali ke pandangan dengan kesan lut. Selepas perbandingan ini, kita perlu mengemas kini refoffset dengan nilai NewOffset untuk menjejaki jarak skrol pengguna.
.banner { height: 77px; display: flex; flex-direction: column; justify-content: space-around; background: rgba(162, 197, 35, 1); transition: all 300ms ease-in-out; }
Animasi menu
Akhirnya, mari tambahkan beberapa animasi untuk menunjukkan dan menyembunyikan menu. Kita boleh menggunakan CSS berikut untuk mencapai ini:
.content { background: url(https://unsplash.it/1400/1400?image=699) center no-repeat; background-size: cover; padding-top: 100%; }
kita juga harus memastikan bahawa sebaik sahaja kita mencapai bahagian atas halaman, kesan lutak dikeluarkan dari menu.
(() => { 'use strict'; const handler = () => { //DOM操作代码在此处 }; window.addEventListener('scroll', handler, false); })();
seperti yang anda lihat, kami mengeluarkan/memohon kelas CSS yang berbeza dengan sewajarnya.
Demo
Ini adalah demo menu kerja. (Pautan Demo Codepen harus dimasukkan di sini, kerana saya tidak dapat mengakses laman web luaran, pautan sebenar tidak dapat disediakan)
Kesimpulan
Artikel ini menerangkan cara menulis beberapa baris kod menggunakan JavaScript tulen (tidak diperlukan jQuery) untuk merancang menu navigasi animasi. Apabila menatal ke bawah, menu akan meluncur; Ini dilakukan dengan memantau arah menatal menegak dan menggunakan transformasi CSS ke elemen DOM apabila diperlukan. Penyelesaian tersuai ini memberi anda lebih banyak kebebasan untuk merancang dengan mudah dan fleksibel mengikut keperluan dan spesifikasi anda.
Ingin meningkatkan kemahiran JavaScript anda? Sila lihat kursus kami bermula dengan JavaScript dan JavaScript: Seterusnya.
Artikel ini telah dikaji semula oleh Vildan Softic. Terima kasih kepada semua pengulas rakan sebaya di SitePoint untuk mendapatkan kandungan SitePoint dengan sebaik -baiknya!
(bahagian FAQ menu navigasi Sticky Animation JavaScript harus dimasukkan di sini, dan kandungannya konsisten dengan teks input. Oleh kerana batasan ruang, ia ditinggalkan di sini.)
Atas ialah kandungan terperinci Vanilla Javascript: Membuat Menu Navigasi Sticky Animasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

10 Plugin Permainan JQuery yang menyeronokkan untuk menjadikan laman web anda lebih menarik dan meningkatkan keletihan pengguna! Walaupun Flash masih merupakan perisian terbaik untuk membangunkan permainan web kasual, jQuery juga boleh menghasilkan kesan yang mengejutkan, dan walaupun tidak setanding dengan permainan flash aksi tulen, dalam beberapa kes, anda juga boleh bersenang -senang di penyemak imbas anda. permainan jquery tic toe "Hello World" pengaturcaraan permainan kini mempunyai versi jQuery. Kod sumber JQuery Game Composition Crazy Word Ini adalah permainan mengisi kosong, dan ia dapat menghasilkan beberapa hasil yang pelik kerana tidak mengetahui konteks perkataan. Kod sumber JQuery Mine Sweeping Game

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Tutorial ini menunjukkan cara membuat kesan latar belakang paralaks yang menawan menggunakan jQuery. Kami akan membina sepanduk header dengan imej berlapis yang mewujudkan kedalaman visual yang menakjubkan. Plugin yang dikemas kini berfungsi dengan JQuery 1.6.4 dan kemudian. Muat turun

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Matter.js adalah enjin fizik badan tegar 2D yang ditulis dalam JavaScript. Perpustakaan ini dapat membantu anda dengan mudah mensimulasikan fizik 2D dalam penyemak imbas anda. Ia menyediakan banyak ciri, seperti keupayaan untuk mencipta badan yang tegar dan menetapkan sifat fizikal seperti jisim, kawasan, atau ketumpatan. Anda juga boleh mensimulasikan pelbagai jenis perlanggaran dan daya, seperti geseran graviti. Matter.js menyokong semua pelayar arus perdana. Di samping itu, ia sesuai untuk peranti mudah alih kerana ia mengesan sentuhan dan responsif. Semua ciri-ciri ini menjadikannya bernilai masa untuk belajar menggunakan enjin, kerana ini memudahkan untuk membuat permainan atau simulasi 2D berasaskan fizik. Dalam tutorial ini, saya akan merangkumi asas -asas perpustakaan ini, termasuk pemasangan dan penggunaannya, dan menyediakan

Artikel ini menunjukkan bagaimana untuk menyegarkan semula kandungan div secara automatik setiap 5 saat menggunakan jQuery dan Ajax. Contohnya mengambil dan memaparkan catatan blog terkini dari suapan RSS, bersama -sama dengan timestamp refresh terakhir. Imej pemuatan adalah opsyena


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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

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

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),

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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.