<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Animated Dropdown Menu</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: linear-gradient(135deg, #fcd5ce 0%, #fae1dd 100%);
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
.header {
text-align: center;
color: #5f0f40;
margin-bottom: 50px;
animation: fadeInDown 1s ease;
}
.header h1 {
font-size: 3rem;
font-weight: 700;
margin-bottom: 10px;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}
.header p {
font-size: 1.2rem;
opacity: 0.9;
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Navigation Bar */
.navbar {
background: white;
border-radius: 16px;
padding: 0 30px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
margin-bottom: 50px;
animation: fadeInUp 1s ease 0.3s backwards;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.nav-list {
list-style: none;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
gap: 10px;
}
.nav-item {
position: relative;
}
.nav-link {
display: flex;
align-items: center;
gap: 8px;
padding: 25px 20px;
color: #5f0f40;
text-decoration: none;
font-weight: 600;
font-size: 1.05rem;
transition: all 0.3s ease;
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 3px;
background: #fcd5ce;
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 80%;
}
.nav-link:hover {
color: #9d4edd;
}
.arrow {
font-size: 12px;
transition: transform 0.3s ease;
}
.nav-item:hover .arrow {
transform: rotate(180deg);
}
/* Dropdown Menu */
.dropdown {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
background: white;
border-radius: 12px;
min-width: 220px;
padding: 15px 0;
box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
opacity: 0;
visibility: hidden;
transform: translateX(-50%) translateY(20px);
transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
z-index: 1000;
}
.nav-item:hover .dropdown {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
}
.dropdown-item {
padding: 12px 25px;
color: #5f0f40;
text-decoration: none;
display: flex;
align-items: center;
gap: 12px;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.dropdown-item::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 4px;
background: #fcd5ce;
transform: scaleY(0);
transition: transform 0.3s ease;
}
.dropdown-item:hover::before {
transform: scaleY(1);
}
.dropdown-item:hover {
background: #fcd5ce;
padding-left: 35px;
}
.dropdown-icon {
font-size: 18px;
}
/* Demo Sections */
.demo-section {
background: white;
border-radius: 20px;
padding: 40px;
margin-bottom: 30px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
animation: fadeInUp 1s ease backwards;
}
.demo-section:nth-child(2) { animation-delay: 0.5s; }
.demo-section:nth-child(3) { animation-delay: 0.7s; }
.section-title {
font-size: 1.8rem;
color: #5f0f40;
margin-bottom: 25px;
font-weight: 700;
}
/* Mega Menu Style */
.mega-dropdown {
min-width: 600px;
padding: 30px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 25px;
}
.mega-column h4 {
color: #5f0f40;
font-size: 1.1rem;
margin-bottom: 15px;
font-weight: 700;
}
.mega-column .dropdown-item {
padding: 10px 15px;
font-size: 0.95rem;
}
/* Button Style Dropdown */
.button-dropdown {
display: inline-block;
position: relative;
}
.dropdown-button {
background: linear-gradient(135deg, #fcd5ce 0%, #fae1dd 100%);
color: #5f0f40;
padding: 15px 30px;
border: none;
border-radius: 12px;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
display: flex;
align-items: center;
gap: 10px;
transition: all 0.3s ease;
box-shadow: 0 4px 15px rgba(252, 213, 206, 0.4);
}
.dropdown-button:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(252, 213, 206, 0.6);
}
.button-dropdown:hover .dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.button-dropdown .dropdown {
left: 0;
transform: translateY(20px);
margin-top: 10px;
}
/* Slide Animation Dropdown */
.slide-dropdown {
animation: slideDown 0.4s ease;
}
@keyframes slideDown {
from {
opacity: 0;
transform: translateX(-50%) translateY(-20px);
}
to {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
}
/* Fade Scale Animation */
.scale-dropdown {
transform-origin: top center;
}
.nav-item:hover .scale-dropdown {
animation: scaleIn 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@keyframes scaleIn {
from {
opacity: 0;
transform: translateX(-50%) scale(0.8);
}
to {
opacity: 1;
transform: translateX(-50%) scale(1);
}
}
/* Mobile Menu Toggle */
.mobile-toggle {
display: none;
background: #fcd5ce;
color: #5f0f40;
border: none;
padding: 12px 20px;
border-radius: 10px;
font-size: 1.2rem;
font-weight: 600;
cursor: pointer;
margin-bottom: 20px;
}
@media (max-width: 768px) {
.header h1 {
font-size: 2rem;
}
.mobile-toggle {
display: block;
}
.navbar {
padding: 20px;
}
.nav-list {
flex-direction: column;
display: none;
}
.nav-list.active {
display: flex;
}
.nav-link {
padding: 15px;
}
.dropdown {
position: static;
transform: none;
margin-top: 10px;
opacity: 1;
visibility: visible;
display: none;
}
.nav-item:hover .dropdown {
display: block;
}
.mega-dropdown {
grid-template-columns: 1fr;
min-width: 100%;
}
.demo-section {
padding: 25px;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>đ Animated Dropdown Menus</h1>
<p>Beautiful dropdown menus with smooth animations</p>
</div>
<!-- Main Navigation with Dropdowns -->
<button class="mobile-toggle" onclick="toggleMobileMenu()">â° Menu</button>
<nav class="navbar">
<ul class="nav-list" id="navList">
<li class="nav-item">
<a href="#" class="nav-link">
đ Home
</a>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
đŧ Services
<span class="arrow">âŧ</span>
</a>
<div class="dropdown slide-dropdown">
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ¨</span>
Web Design
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đģ</span>
Development
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đą</span>
Mobile Apps
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ</span>
Marketing
</a>
</div>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
đĻ Products
<span class="arrow">âŧ</span>
</a>
<div class="dropdown scale-dropdown mega-dropdown">
<div class="mega-column">
<h4>Software</h4>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">âī¸</span>
Management Tools
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ</span>
Analytics
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ</span>
Security
</a>
</div>
<div class="mega-column">
<h4>Hardware</h4>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đĨī¸</span>
Computers
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">â¨ī¸</span>
Accessories
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ¨ī¸</span>
Peripherals
</a>
</div>
</div>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
âšī¸ About
<span class="arrow">âŧ</span>
</a>
<div class="dropdown">
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đĸ</span>
Company
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đĨ</span>
Team
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ¯</span>
Mission
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ°</span>
News
</a>
</div>
</li>
<li class="nav-item">
<a href="#" class="nav-link">
đ Contact
</a>
</li>
</ul>
</nav>
<!-- Button Style Dropdown Demo -->
<div class="demo-section">
<h2 class="section-title">Button Style Dropdown</h2>
<div class="button-dropdown">
<button class="dropdown-button">
Select Option
<span class="arrow">âŧ</span>
</button>
<div class="dropdown">
<a href="#" class="dropdown-item">
<span class="dropdown-icon">â
</span>
Option 1
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">â</span>
Option 2
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đ¯</span>
Option 3
</a>
<a href="#" class="dropdown-item">
<span class="dropdown-icon">đĨ</span>
Option 4
</a>
</div>
</div>
</div>
<!-- Features Section -->
<div class="demo-section">
<h2 class="section-title">⨠Features</h2>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px;">
<div style="padding: 20px; background: #fcd5ce; border-radius: 12px;">
<h3 style="color: #5f0f40; margin-bottom: 10px;">đ¨ Smooth Animations</h3>
<p style="color: #5f0f40; opacity: 0.8;">CSS-based animations for silky smooth transitions</p>
</div>
<div style="padding: 20px; background: #fae1dd; border-radius: 12px;">
<h3 style="color: #5f0f40; margin-bottom: 10px;">đą Responsive Design</h3>
<p style="color: #5f0f40; opacity: 0.8;">Works perfectly on all screen sizes and devices</p>
</div>
<div style="padding: 20px; background: #fcd5ce; border-radius: 12px;">
<h3 style="color: #5f0f40; margin-bottom: 10px;">đ¯ Multiple Styles</h3>
<p style="color: #5f0f40; opacity: 0.8;">Various dropdown styles including mega menus</p>
</div>
</div>
</div>
</div>
<script>
function toggleMobileMenu() {
const navList = document.getElementById('navList');
navList.classList.toggle('active');
}
// Close dropdowns when clicking outside
document.addEventListener('click', function(event) {
const navItems = document.querySelectorAll('.nav-item');
navItems.forEach(item => {
if (!item.contains(event.target)) {
const dropdown = item.querySelector('.dropdown');
if (dropdown) {
dropdown.style.display = '';
}
}
});
});
No comments yet. Be the first!