कॉलैप्सिबल साइडबार मेनू (कंटेंट पुश के साथ)
CSS और JavaScript का उपयोग करके कॉलैप्सिबल साइडबार मेनू बनाने का कोड - यह बाईं ओर से स्लाइड होता है और मुख्य कंटेंट को दाईं ओर धकेलता है।
उदाहरण
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>साइडबार मेनू</title>
<style>
.sideNav {
height: 100vh;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(46, 218, 195);
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}
.sideNav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: #000000;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
display: block;
transition: 0.3s;
}
.sideNav a:hover {
color: #f1f1f1;
}
.sideNav .closeBtn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
button {
padding: 15px;
background-color: rgb(0, 27, 145);
color: rgb(255, 255, 255);
font-size: 20px;
border: none;
border-radius: 2%;
}
.main-content {
transition: 0.5s;
}
</style>
</head>
<body>
<nav class="sideNav">
<a href="#" class="closeBtn">×</a>
<a href="#">Login</a>
<a href="#">Register</a>
<a href="#">Home</a>
<a href="#">About Us</a>
</nav>
<main class="main-content">
<button class="openSideNav">साइड नेव खोलें</button>
<h1>यहां कुछ सैंपल टेक्स्ट है</h1>
<p>यहां कुछ रैंडम सैंपल टेक्स्ट भी है</p>
</main>
<script>
let openBtn = document.querySelector(".openSideNav");
openBtn.addEventListener("click", () => { showNav(); });
let closeBtn = document.querySelector(".closeBtn");
closeBtn.addEventListener("click", () => { hideNav(); });
function showNav() {
document.querySelector(".sideNav").style.width = "300px";
document.querySelector('.main-content').style.marginLeft = "300px";
}
function hideNav() {
document.querySelector(".sideNav").style.width = "0";
document.querySelector('.main-content').style.marginLeft = "0px";
}
</script>
</body>
</html>
आउटपुट
- प्रारंभ में: साइडबार छुपा हुआ (width: 0), कंटेंट बाईं ओर
- "साइड नेव खोलें" क्लिक करने पर: साइडबार 300px, कंटेंट 300px दाईं ओर खिसकता है
- × बटन क्लिक करने पर: दोनों वापस मूल स्थिति में
साइडपैनल vs साइडबार तुलना
| विशेषता | साइडपैनल | साइडबार |
|---|---|---|
| ऊंचाई | आंशिक (300px) | फुल (100vh) |
| कंटेंट पुश | नहीं | हां (margin-left) |
| ओवरले | हां | नहीं (साइड-बाय-साइड) |
| उपयोग केस | विजेट्स, टूल्स | मुख्य नेविगेशन |
रिस्पॉन्सिव व्यवहार
@media (max-width: 768px) {
.sideNav.open { width: 100vw; max-width: 300px; }
.main-content.open { margin-left: 0; } /* मोबाइल पर पुश नहीं */
}
एक्सेसिबिलिटी
<nav role="navigation" aria-label="मुख्य मेनू">- फोकस ट्रैपिंग जब खुला हो
- ESC से बंद, Tab क्रम प्रबंधित