html skeleton + hamburger logic laid
This commit is contained in:
+100
@@ -0,0 +1,100 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Maine Luxury Detailing provides professional car cleaning services in the Portland Area"
|
||||||
|
/>
|
||||||
|
<title>Maine Luxury Detailing</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a href="#main-content" class="skip-link">Skip to main content</a>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<a href="#" class="logo" aria-label="Company Logo">MLD</a>
|
||||||
|
|
||||||
|
<button
|
||||||
|
id="hamburger"
|
||||||
|
aria-label="Toggle mobile navigation menu"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
<span></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<ul id="navMenu" role="banner">
|
||||||
|
<li><a class="navLink" role="navigation" href="#Services">Services</a></li>
|
||||||
|
<li><a class="navLink" role="navigation" href="#Ceramic Coating">Ceramic Coating</a></li>
|
||||||
|
<li><a class="navLink" role="navigation" href="#Reviews">Reviews</a></li>
|
||||||
|
<li><a class="navLink" role="navigation" href="#Contact">Contact</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main id="main-content" class="container">
|
||||||
|
<section id="intro">
|
||||||
|
<h1>Serving Portland since 2023</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse
|
||||||
|
posuere cursus ante, quis tempor lacus fringilla id. Pellentesque sed
|
||||||
|
mi luctus odio varius hendrerit. Nam vitae fermentum ligula, sit amet
|
||||||
|
consectetur sem.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<div id="footer-left">
|
||||||
|
<p>©Maine Luxury Detailing 2025. All rights reserved.</p>
|
||||||
|
</div>
|
||||||
|
<div id="footer-right">
|
||||||
|
<p>Phone: XXX-XXX-XXXXX</p>
|
||||||
|
<p>Email: xxx@xxx.xxx</p>
|
||||||
|
<a href="#">instagram</a>
|
||||||
|
<!-- <img class="footer-icon" src="">
|
||||||
|
<a href="#"></a>
|
||||||
|
</img> -->
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const hamburger = document.getElementById("hamburger");
|
||||||
|
const navMenu = document.getElementById("navMenu");
|
||||||
|
|
||||||
|
// Toggle hamburger menu
|
||||||
|
hamburger.addEventListener("click", function () {
|
||||||
|
hamburger.classList.toggle("active");
|
||||||
|
navMenu.classList.toggle("active");
|
||||||
|
|
||||||
|
const isExpanded = navMenu.classList.contains("active");
|
||||||
|
hamburger.setAttribute("aria-expanded", isExpanded);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Close hamburger when nav link clicked
|
||||||
|
let navLinks = document.getElementsByClassName("navLink");
|
||||||
|
for (let i = 0; i < navLinks.length; i++) {
|
||||||
|
navlinks[i].addEventListener("click", function (event) {
|
||||||
|
hamburger.classList.remove("active");
|
||||||
|
navMenu.classList.remove("active");
|
||||||
|
hamburger.setAttribute("aria-expanded", "false");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// CLose hamburger when click outside of menu
|
||||||
|
document.addEventListener("click", function (event) {
|
||||||
|
const clickOutside =
|
||||||
|
hamburger.contains(event.target) || navMenu.contains(event.target);
|
||||||
|
|
||||||
|
if (clickOutside && navMenu.classList.contains("active")) {
|
||||||
|
hamburger.classList.remove("active");
|
||||||
|
navMenu.classList.remove("active");
|
||||||
|
hamburger.setAttribute("aria-expanded", "false");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user