نوار ناوبری شناور پایین صفحه (Floating Bottom Navigation) با انیمیشن مدرن
منوهای شناور پایین صفحه (Floating Bottom Navigation) یکی از استانداردهای اصلی طراحی تجربه کاربری (UX) در اپلیکیشنها و وبسایتهای موبایل مدرن هستند. در این آموزش سورس کد نوار ناوبری شناور همراه با انیمیشن روان تغییر وضعیت و طراحی Glassmorphism را پیادهسازی میکنیم.
ویژگیهای کلیدی منو
- طراحی مدرن و نیمهشفاف (Glassmorphism)
- انیمیشن هوشمند نشانگر فعال (Active Indicator)
- طراحی ریسپانسیو و بهینهسازی شده برای گوشیهای همراه
- بدون وابستگی به هیچ کتابخانه جانبی (Pure CSS & JS)
- کد تمیز، سبک و قابل سفارشیسازی کامل
کد HTML
<div class="navigation-wrapper">
<nav class="bottom-nav">
<ul>
<li class="list active" data-index="0">
<a href="#home">
<span class="icon">🏠</span>
<span class="text">خانه</span>
</a>
</li>
<li class="list" data-index="1">
<a href="#search">
<span class="icon">🔍</span>
<span class="text">جستجو</span>
</a>
</li>
<li class="list" data-index="2">
<a href="#bookmarks">
<span class="icon">🔖</span>
<span class="text">نشانها</span>
</a>
</li>
<li class="list" data-index="3">
<a href="#profile">
<span class="icon">👤</span>
<span class="text">پروفایل</span>
</a>
</li>
<div class="indicator"></div>
</ul>
</nav>
</div>
کد استایلها (CSS)
.navigation-wrapper {
position: fixed;
bottom: 25px;
left: 50%;
transform: translateX(-50%);
z-index: 9999;
font-family: 'IRANSans', 'Vazirmatn', sans-serif;
direction: rtl;
}
.bottom-nav {
position: relative;
width: 360px;
height: 70px;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
display: flex;
justify-content: center;
align-items: center;
border-radius: 35px;
box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1),
0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}
.bottom-nav ul {
display: flex;
width: 100%;
padding: 0;
margin: 0;
list-style: none;
justify-content: space-around;
}
.bottom-nav ul li {
position: relative;
list-style: none;
width: 70px;
height: 70px;
z-index: 1;
}
.bottom-nav ul li a {
position: relative;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 100%;
text-align: center;
font-weight: 500;
text-decoration: none;
}
.bottom-nav ul li a .icon {
position: relative;
display: block;
line-height: 75px;
font-size: 1.4em;
text-align: center;
transition: transform 0.5s;
}
.bottom-nav ul li.active a .icon {
transform: translateY(-8px);
}
.bottom-nav ul li a .text {
position: absolute;
color: #6c5ce7;
font-size: 0.75em;
letter-spacing: 0.05em;
transition: 0.5s;
opacity: 0;
transform: translateY(20px);
}
.bottom-nav ul li.active a .text {
opacity: 1;
transform: translateY(14px);
}
.indicator {
position: absolute;
top: -20px;
width: 60px;
height: 60px;
background: #6c5ce7;
border-radius: 50%;
border: 6px solid #f0f2f5;
transition: 0.5s ease;
z-index: 0;
display: none;
}
کد جاوا اسکریپت (JavaScript)
const list = document.querySelectorAll('.bottom-nav .list');
function activeLink() {
list.forEach((item) => item.classList.remove('active'));
this.classList.add('active');
}
list.forEach((item) => item.addEventListener('click', activeLink));
نکات بهینهسازی و سئو در طراحی رابط کاربری
- دسترسیپذیری (Accessibility): برای برچسبها از تگهای مفهومی مناسب یا ویژگیهای
aria-labelاستفاده کنید. - کارایی (Performance): انیمیشنها از طریق ویژگیهای
transformوopacityبا شتابدهنده سختافزاری اجرا میشوند. - واکنشگرایی: با استفاده از مدیاکوئریها عرض نوار را در صفحهنمایشهای خیلی کوچک بهصورت درصدی (مثلا
width: 90vw) تغییر دهید.
جمعبندی
نوار ناوبری پایین صفحه راهکاری فوقالعاده برای بالابردن سطح تعامل کاربر و ارتقای حس اپلیکیشنمحور سایت است. برای دریافت سایر ترندها و کدهای کاربردی به بخش سورس کدهای طاووس وب مراجعه نمایید.