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

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


रिस्पॉन्सिव मॉडल इमेज (सिंगल इमेज)

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 {
      margin-left: 38%;
      border-radius: 5px;
      cursor: pointer;
      transition: 0.3s;
      height: 250px;
      width: 250px;
    }
    .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" alt="Snow" style="width:100%;max-width:300px">
  <div class="modal">
    <span class="close">×</span>
    <img class="modalImage" id="img01">
    <div id="caption">इमेज 1</div>
  </div>
  
  <script>
    var modalEle = document.querySelector(".modal");
    var modalImage = document.querySelector(".modalImage");
    let wow;
    
    document.querySelector('.ImgThumbnail').addEventListener('click', (event) => {
      modalEle.style.display = "block";
      modalImage.src = event.target.src;
    });
    
    document.querySelector(".close").addEventListener('click', () => {
      modalEle.style.display = "none";
    });
  </script>
</body>
</html>

आउटपुट

  • प्रारंभ में: सिंगल थंबनेल इमेज (मैक्स 300px)
  • इमेज क्लिक करने पर: मॉडल खुलता है, इमेज 50% चौड़ाई (मैक्स 700px) में दिखती है
  • मोबाइल (<700px) पर: मॉडल इमेज 100% चौड़ाई
  • × क्लिक करने पर: मॉडल बंद

गैलरी वर्जन (पिछला आर्टिकल) vs सिंगल इमेज

विशेषतागैलरीसिंगल
थंबनेल्सएकाधिकएक
नेविगेशनअगला/पिछला (जोड़ सकते हैं)नहीं
कैप्शनवैकल्पिकफिक्स्ड "इमेज 1"

बेहतर पैटर्न: रीयूजेबल फंक्शन

function createImageModal(triggerSelector, modalSelector) {
  const modal = document.querySelector(modalSelector);
  const modalImg = modal.querySelector('img');
  const closeBtn = modal.querySelector('.close');
  
  document.querySelectorAll(triggerSelector).forEach(img => {
    img.addEventListener('click', () => {
      modalImg.src = img.src;
      modalImg.alt = img.alt;
      modal.style.display = 'block';
    });
  });
  
  closeBtn.addEventListener('click', () => modal.style.display = 'none');
  modal.addEventListener('click', (e) => {
    if (e.target === modal) modal.style.display = 'none';
  });
  
  document.addEventListener('keydown', (e) => {
    if (e.key === 'Escape') modal.style.display = 'none';
  });
}

createImageModal('.gallery img', '#imageModal');
  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 {   &

  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 {    d