امروزه، داشتن یک منوی ناوبری جذاب و کاربرپسند، نقش بسیار مهمی در تجربه کاربری (UX) وب سایت شما ایفا می کند. یک منوی متحرک، علاوه بر زیبایی بصری، می تواند تعامل کاربران با سایت شما را افزایش داده و آن ها را به گشت و گذار بیشتر ترغیب کند. در این آموزش، به صورت گام به گام، نحوه ایجاد یک منوی متحرک با استفاده از JavaScript، HTML و CSS را فرا خواهید گرفت.
استفاده از منوی متحرک در وب سایت، مزایای متعددی دارد که از جمله آن ها می توان به موارد زیر اشاره کرد:
برای دنبال کردن این آموزش، نیاز به دانش پایه در زمینه های زیر دارید:
ساخت یک منوی متحرک با JavaScript، معمولاً شامل مراحل زیر است:
<nav>، <ul> و <li>.ابتدا، ساختار HTML منو را ایجاد می کنیم. کد زیر، یک نمونه ساده از ساختار HTML یک منو را نشان می دهد:
<nav id="main-nav">
<div class="logo">
<a href="#">نام سایت</a>
</div>
<ul class="menu">
<li><a href="#">صفحه اصلی</a></li>
<li><a href="#">درباره ما</a></li>
<li><a href="#">خدمات</a></li>
<li><a href="#">تماس با ما</a></li>
</ul>
<div class="burger">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
</div>
</nav>
در این مرحله، با استفاده از CSS، به منو ظاهر دلخواه خود را می دهیم. در زیر، یک نمونه از استایل های CSS برای منوی بالا آمده است:
#main-nav {
display: flex;
justify-content: space-around;
align-items: center;
min-height: 8vh;
background-color: #232f3e;
}
.logo {
color: white;
text-transform: uppercase;
letter-spacing: 5px;
font-size: 20px;
}
.menu {
display: flex;
justify-content: space-around;
width: 40%;
}
.menu li {
list-style: none;
}
.menu a {
color: white;
text-decoration: none;
letter-spacing: 3px;
font-weight: bold;
transition: color 0.3s ease;
}
.menu a:hover {
color: #f3a683;
}
.burger {
display: none;
cursor: pointer;
}
.burger div {
width: 25px;
height: 3px;
background-color: white;
margin: 5px;
transition: all 0.3s ease;
}
/*Responsive*/
@media screen and (max-width: 768px) {
.menu {
position: absolute;
right: 0px;
height: 92vh;
top: 8vh;
background-color: #232f3e;
display: flex;
flex-direction: column;
align-items: center;
width: 50%;
transform: translateX(100%);
transition: transform 0.5s ease-in;
}
.menu li {
opacity: 0;
}
.burger {
display: block;
}
}
.menu-active {
transform: translateX(0%);
}
@keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
.toggle .line1 {
transform: rotate(-45deg) translate(-5px, 6px);
}
.toggle .line2 {
opacity: 0;
}
.toggle .line3 {
transform: rotate(45deg) translate(-5px, -6px);
}
در این مرحله، با استفاده از JavaScript، انیمیشن ها و تعاملات را به منو اضافه می کنیم. کد زیر، یک نمونه از کد JavaScript برای ایجاد یک منوی همبرگری متحرک را نشان می دهد:
const navSlide = () => {
const burger = document.querySelector('.burger');
const nav = document.querySelector('.menu');
const navLinks = document.querySelectorAll('.menu li');
//Toggle Nav
burger.addEventListener('click', () => {
nav.classList.toggle('menu-active');
//Animate Links
navLinks.forEach((link, index) => {
if (link.style.animation) {
link.style.animation = ''
} else {
link.style.animation = `navLinkFade 0.5s ease forwards ${index / 5 + 0.5}s`;
}
});
//Burger Animation
burger.classList.toggle('toggle');
});
}
navSlide();
کدهای بالا را به فایل HTML خود اضافه کنید و تغییرات را مشاهده کنید.
انواع مختلفی از انیمیشن ها را می توانید در منوی وب سایت خود استفاده کنید. برخی از محبوب ترین آن ها عبارتند از:
با توجه به افزایش استفاده از دستگاه های موبایل، بهینه سازی منو برای این دستگاه ها از اهمیت بالایی برخوردار است. می توانید از تکنیک هایی مانند منوی همبرگری (Hamburger Menu) برای نمایش منو در فضای محدود موبایل استفاده کنید.
بله، کتابخانه های JavaScript متعددی مانند jQuery، GSAP و Anime.js وجود دارند که می توانند به شما در ساخت منوهای متحرک پیچیده تر کمک کنند.
برای بهینه سازی منوی متحرک برای سئو، مطمئن شوید که:
بله! ما با افتخار آماده ایم تا در زمینه طراحی و سئو وب سایت به شما کمک کنیم. با تیمی مجرب و متخصص، بهترین راهکارها را برای بهبود تجربه کاربری و افزایش رتبه سایت شما ارائه می دهیم. برای مشاوره رایگان و اطلاعات بیشتر، با ما تماس بگیرید: 09190994063 - 09376846692
آیا به دنبال بهبود سئو و طراحی وب سایت خود هستید؟ با ما تماس بگیرید: 09190994063 - 09376846692