🍔 Responsive Menüler: Hamburger’den Epik Açılır Menülere (Gelişmiş Sürüm)

🍔 Responsive Menüler: Hamburger’den Epik Açılır Menülere (Gelişmiş Sürüm)

Merhaba sevgili web kaşifi! 🕵️‍♀️💻
Bugün menülerden bahsedeceğiz… Ama sıradan menüler değil! Hem mobil hem masaüstünde harika görünen, hover ile açılan, animasyonlu, JS ile ekstra efektli epik menüler yaratacağız. ✨

Hazırsan, hamburger ikonun sadece aç-kapa düğmesi olmanın ötesine geçecek. 🍔➡️🎉


1️⃣ Hamburger Menünün Temeli 🍔

HTML Yapısı

Mobilin kurtarıcısı, minimalistin gözdesi: hamburger menü.
HTML ile temel yapı şöyle:

<nav>
  <div class="hamburger" id="hamburger">
    ☰ <!-- Üç çizgi simgesi -->
  </div>
  <ul class="menu" id="menu">
    <li><a href="#">Ana Sayfa</a></li>
    <li><a href="#">Hakkımızda</a></li>
    <li>
      <a href="#">Hizmetler</a>
      <ul class="submenu">
        <li><a href="#">Web Tasarım</a></li>
        <li><a href="#">SEO</a></li>
        <li><a href="#">Dijital Pazarlama</a></li>
      </ul>
    </li>
    <li><a href="#">İletişim</a></li>
  </ul>
</nav>

💡 İpucu: Alt menüleri <ul class="submenu"> içinde gruplamak, hem HTML’i düzenli tutar hem CSS ile animasyon eklemeyi kolaylaştırır.


CSS ile İlk Stil 🎨

/* Genel Nav Stilleri */
nav {
  background-color: #222;
  color: white;
  padding: 10px 20px;
  position: relative;
  font-family: Arial, sans-serif;
}

/* Hamburger ikonu */
.hamburger {
  font-size: 30px;
  cursor: pointer;
  display: none; /* Masaüstünde gizle, mobilde göstereceğiz */
}

/* Menü stili */
.menu {
  list-style: none;
  display: flex;
  gap: 20px;
}

.menu li a {
  color: white;
  text-decoration: none;
  transition: color 0.3s, transform 0.3s;
}

.menu li a:hover {
  color: #ff6347;
  transform: scale(1.1);
}

/* Alt menü gizleme */
.submenu {
  display: none;
  position: absolute;
  background-color: #444;
  list-style: none;
  padding: 10px 0;
  top: 100%;
  left: 0;
  border-radius: 5px;
  min-width: 180px;
}

.submenu li a {
  padding: 10px 20px;
  display: block;
}

/* Hover ile alt menü açma */
.menu li:hover .submenu {
  display: block;
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Mobil duyarlılık */
@media (max-width: 768px) {
  .hamburger {
    display: block;
  }
  .menu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 50px;
    left: 0;
    background-color: #333;
    width: 100%;
    padding: 10px 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out;
  }
  .menu li {
    padding: 10px 20px;
  }
}

💡 İpucu: max-height ve transition ile mobil menü açılırken smooth animasyon elde edebilirsin.


2️⃣ Hamburger Menüye JS Efekti 🕹️

Artık menüyü tıkla aç-kapa yapacağız!

const hamburger = document.getElementById('hamburger');
const menu = document.getElementById('menu');

hamburger.addEventListener('click', () => {
  if(menu.style.maxHeight &amp;&amp; menu.style.maxHeight !== "0px"){
    menu.style.maxHeight = "0px";
  } else {
    menu.style.maxHeight = menu.scrollHeight + "px";
  }
});

💡 İpucu: scrollHeight ile menü içeriğine göre otomatik yükseklik ayarlanır. Böylece içerik eklesen de JS ile ekstra kod yazmana gerek kalmaz.


3️⃣ Animasyonlu Açılır Alt Menüler ✨

Hover ile açılan alt menüler, menüyü hem interaktif hem epik yapar.

.submenu {
  display: block; /* Hover JS yerine sadece CSS ile açabiliriz */
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease-in-out;
}

.menu li:hover .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

💡 İpucu: Opacity + translate kombinasyonu, alt menünün yumuşak ve profesyonel görünmesini sağlar.


4️⃣ JS ile Ekstra Menü Efektleri 🎢

  • Animasyonlu aç-kapa: max-height ile yumuşak kaydırma
  • Alt menü açılırken delay: Kullanıcı hover yaparken mini delay ile efektli açılma
const submenuItems = document.querySelectorAll('.submenu li');

submenuItems.forEach((item, index) => {
  item.style.transitionDelay = `${index * 0.05}s`;
});

💡 Küçük gecikmeler (0.05s, 0.1s) menüyü daha canlı ve “profesyonel” gösterir.


5️⃣ Pratik İpuçları💖

  1. Alt menü genişliğini sabitle: Menü karışmasın, responsive de olsun.
  2. Renk ve hover kontrastını unutma: Mobilde dokunmatik ekranlarda hover yok, tıklama ile açılmalı.
  3. JS ve CSS uyumu: CSS animasyon + JS aç-kapa en temiz çözüm.
  4. İkon animasyonu ekle: Hamburger ikonu tıklandığında X simgesine dönüşebilir.
.hamburger.active::after {
  content: "✖";
  color: #ff6347;
}

hamburger.addEventListener('click', () => {
  hamburger.classList.toggle('active');
});

🎯 Bu küçük detay, kullanıcıya menünün açık mı kapalı mı olduğunu gösterir.


6️⃣ Özet ve Son Dokunuşlar 🎨

  • Hamburger menü mobilin dostu 🍔
  • Hover ve CSS ile alt menüler epik hale gelir ✨
  • JS ile aç-kapa ve animasyon efektleri eklenir 🕹️
  • Delay ve transition ile menü daha canlı olur 🌟
  • Responsive tasarım ile her cihazda mükemmel görünür 📱💻

🎉 İşte, hamburger menüden epik açılır menülere giden yol bu! Sayfan artık hem şık, hem eğlenceli, hem interaktif bir navigasyona sahip. 🍔➡️🎯

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir