Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

CSS और JavaScript से कॉलैप्सिबल साइडबार मेनू कैसे बनाएं?


कॉलैप्सिबल साइडबार मेनू (कंटेंट पुश के साथ)

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 क्रम प्रबंधित
  1. CSS और JavaScript से कॉलैप्सिबल सेक्शन बनाएं CSS और JavaScript से कॉलैप्सिबल सेक्शन बनाएं

    कॉलैप्सिबल सेक्शन (अकॉर्डियन) वेब पेज पर कंटेंट को व्यवस्थित करने का एक शानदार तरीका है, जिससे उपयोगकर्ता केवल वही देखते हैं जिसमें वे रुचि रखते हैं। उदाहरण <!DOCTYPE html> <html> <head> <meta name=viewport content=width=device-width, initial-scale=1 /> <style> bo

  1. CSS और JavaScript के साथ स्नैकबार/टोस्ट कैसे बनाएं? CSS और JavaScript के साथ स्नैकबार/टोस्ट कैसे बनाएं?

    उदाहरण CSS और JavaScript का उपयोग करके स्नैकबार/टोस्ट बनाने के लिए, निम्न कोड का उपयोग करें: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    body {       font-fa

  1. CSS और JavaScript से एकॉर्डियन कैसे बनाएं CSS और JavaScript से एकॉर्डियन कैसे बनाएं

    CSS और JavaScript से एकॉर्डियन बनाने के लिए, कोड निम्नलिखित है:उदाहरण<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> .demo { background-color: #eee; cursor: pointer; padding: 25px; width: 100