Sticky Navbar
Komponen bilah navigasi lengket yang membeku dengan efek morfisme kaca dan berubah menjadi gaya ringkas saat Anda menggulir.
Pratinjau
Mensimulasikan navigator tetap glassmorphic dengan pengguliran. Klik tombol di pratinjau untuk melihat efek bergulir.
Kasus penggunaan dan fitur
-
Halaman Arahan/Portofolio: Ekspresi navigator berubah saat Anda menggulir, memberikan kesan dibuat dengan baik.
-
Cocok untuk tema gelap:
backdrop-filter: blurGlassmorphism terlihat sangat bagus pada latar belakang gelap. -
Memanfaatkan
position: sticky: Maksimalkan kinerja dengan memanfaatkanposition: stickydi CSS alih-alih hanya mengandalkan JavaScript.
Poin desain dan UX
-
Menembak pada gulir 10px: Morfisme kaca muncul pada waktu netral.
-
Perubahan padding: Dikurangi dari
1.25rem to 0.75remagar lebih kompak dan mengamankan area konten yang lebih luas. -
Halus dengan
transition: Ciptakan perubahan alami dengan melakukan transisi secara bersamaan pada empat properti latar belakang, buram, bayangan kotak, dan bantalan.
Cara menyesuaikan
Ubah ambang awal gulir:
// memicu sebelumnya (5px)
if (demo.scrollTop > 5) { ... }
// memicu nanti (50px)
if (demo.scrollTop > 50) { ... }
tambahkan tautan:
<li><a href="#services">melayani</a></li>
<li><a href="#blog">blog</a></li>
Kode implementasi
<nav class="snav-bar" id="sticky-nav">
<div class="snav-logo">BRAND</div>
<ul class="snav-links">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Work</a></li>
</ul>
<button class="snav-cta">Contact</button>
</nav>
<style>
.snav-bar {
position: sticky;
top: 0;
z-index: 100;
width: 100%;
box-sizing: border-box;
padding: 1.25rem 2rem;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1.5rem;
transition: background 0.3s ease, backdrop-filter 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
.snav-bar.scrolled {
background: rgba(15,23,42,0.75);
backdrop-filter: blur(16px);
box-shadow: 0 1px 0 rgba(255,255,255,0.08), 0 8px 32px rgba(0,0,0,0.4);
padding: 0.75rem 2rem;
}
</style>
<script>
window.addEventListener('scroll', function() {
var nav = document.getElementById('sticky-nav');
if (window.scrollY > 10) nav.classList.add('scrolled');
else nav.classList.remove('scrolled');
});
</script> Status kompatibilitas peramban
| Peramban | Status kompatibilitas |
|--------|-------|
| Chrome 76+ | ✅ Sepenuhnya kompatibel |
| Firefox 103+ | ✅ Kompatibel |
| Safari 9+ | ✅ Sepenuhnya kompatibel |
| Tepi 79+ | ✅ Sepenuhnya kompatibel |
backdrop-filtertidak didukung oleh beberapa browser lama, namun latar belakang semi-transparanbackground: rgba(...)sudah cukup sebagai cadangan.