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

CSS और JavaScript से मॉडल इमेज गैलरी कैसे बनाएं?


मॉडल इमेज गैलरी (Modal Image Gallery)

CSS और JavaScript से मॉडल इमेज गैलरी बनाने का कोड:

उदाहरण

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <style>
    * { box-sizing: border-box; }
    h1 { text-align: center; }
    .ImgThumbnail {
      border-radius: 5px;
      cursor: pointer;
      transition: 0.3s;
      height: 250px;
      width: 250px;
    }
    .ImgThumbnail:nth-of-type(1) {
      margin-left: 20%;
    }
    .modal {
      display: none;
      position: fixed;
      z-index: 1;
      padding-top: 100px;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      overflow: auto;
      background-color: rgb(0, 0, 0);
      background-color: rgba(0, 0, 0, 0.9);
    }
    .modalImage {
      margin: auto;
      display: block;
      width: 50%;
      height: 60%;
      max-width: 700px;
    }
    #caption {
      margin: auto;
      display: block;
      width: 80%;
      max-width: 700px;
      text-align: center;
      color: #ccc;
      padding: 10px 0;
      height: 150px;
    }
    .close {
      position: absolute;
      top: 15px;
      right: 35px;
      color: #f1f1f1;
      font-size: 40px;
      font-weight: bold;
      transition: 0.3s;
    }
    .close:hover, .close:focus {
      color: rgb(255, 0, 0);
      cursor: pointer;
    }
    @media only screen and (max-width: 700px) {
      .modalImage { width: 100%; }
    }
  </style>
</head>
<body>
  <h1>इमेज मॉडल गैलरी उदाहरण</h1>
  <img class="ImgThumbnail" src="https://images.pexels.com/photos/3540375/pexels-photo-3540375.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"/>
  <img class="ImgThumbnail" src="https://i.picsum.photos/id/237/536/354.jpg"/>
  <img class="ImgThumbnail" src="https://images.pexels.com/photos/3802510/pexels-photo-3802510.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500"/>
  
  <!-- The Modal -->
  <div class="modal">
    <span class="close">×</span>
    <img class="modalImage" id="img01" />
  </div>
  
  <script>
    var modalEle = document.querySelector(".modal");
    var modalImage = document.querySelector(".modalImage");
    
    Array.from(document.querySelectorAll(".ImgThumbnail")).forEach(item => {
      item.addEventListener("click", event => {
        modalEle.style.display = "block";
        modalImage.src = event.target.src;
      });
    });
    
    document.querySelector(".close").addEventListener("click", () => {
      modalEle.style.display = "none";
    });
  </script>
</body>
</html>

आउटपुट

  • थंबनेल इमेजेज ग्रिड में दिखती हैं
  • किसी थंबनेल पर क्लिक करने पर: मॉडल खुलता है, फुल-साइज़ इमेज दिखती है
  • × बटन या मॉडल बैकग्राउंड क्लिक करने पर: मॉडल बंद होता है

मुख्य तकनीकें

  • position: fixed + width/height: 100% - फुल-स्क्रीन ओवरले
  • rgba(0,0,0,0.9) - सेमी-ट्रांसपेरेंट डार्क बैकग्राउंड
  • margin: auto; display: block - इमेज सेंटर
  • max-width: 700px - बड़ी स्क्रीन पर इमेज लिमिट
  • इवेंट डेलिगेशन पैटर्न: सभी थंबनेल्स पर एक लूप में लिसनर

सुधार

  • कीबोर्ड नेविगेशन (←/→ तीर, ESC)
  • कैप्शन/टाइटल सपोर्ट (alt या data-caption से)
  • प्रीलोडिंग अगली/पिछली इमेज
  • स्वाइप जेस्चर सपोर्ट (मोबाइल)
  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

  1. CSS और JavaScript से रिस्पॉन्सिव स्लाइडशो गैलरी कैसे बनाएं? CSS और JavaScript से रिस्पॉन्सिव स्लाइडशो गैलरी कैसे बनाएं?

    CSS और JavaScript से रिस्पॉन्सिव स्लाइडशो गैलरी बनाने का कोड निम्नलिखित है:उदाहरण<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> * {    box-sizing: border-box; } .Slide {   &