【问题标题】:How can I display the thumbnail image and open modal on click using JavaScript如何使用 JavaScript 显示缩略图并在点击时打开模式
【发布时间】:2019-01-29 13:02:23
【问题描述】:

我有数百篇包含 html sn-ps 的基于 html 的期刊文章,如下例所示,用于参考图片:

<div class="fig panel" style="display: float; clear: both">
    <a id="de8adf66-3683-c412-3cd6-45bc686a4ebe"><!-- named anchor --></a>
    <h5 class="label">Innovation attributes</h5>
    <div class="caption">
        <p class="first" id="e5a7d435-9a86-3b8e-8a85-5835cdfa4a67">
            <i>Adams, 2003.</i>
        </p>
    </div>
    <a id="ID0EHD" href="https://journal.emergentpublications.com/wp-content/uploads/2015/11/de8adf66-3683-c412-3cd6-45bc686a4ebe-300x235.png">
        <div class="long-desc" />
        <a target="xrefwindow" href="https://journal.emergentpublications.com/wp-content/uploads/2015/11/de8adf66-3683-c412-3cd6-45bc686a4ebe.png" id="ID0ELD">https://journal.emergentpublications.com/wp-content/uploads/2015/11/de8adf66-3683-c412-3cd6-45bc686a4ebe.png</a>
        <div class="permissions">
            <p class="copyright" />
            <p class="copyright">
                <span class="generated">Copyright</span>
            </p>
            <div class="license">
                <p class="first" id="ID0ESD" />
            </div>
        </div>
    </a>
</div>

在准备好文档时,使用 JavaScript 和 CSS3 如何显示包含在第一个“a”标签中的缩略图,以及下面的“long-desc”和“permissions”div 的内容......然后当单击缩略图,在填充屏幕的模式中打开第二个(女儿)“a”标签中的图像(并有一个关闭按钮)?

【问题讨论】:

    标签: javascript html css


    【解决方案1】:

    看看这个。您可以根据需要编辑样式。这只是一个草图。

    document.addEventListener('DOMContentLoaded', function() {
      let thumbnail = document.querySelector('.thumbnail');
      let close = document.querySelector('.modal-close');
      let overlay = document.querySelector('.overlay');
    
      thumbnail.addEventListener('click', function(e) {
        e.preventDefault();
        overlay.classList.add('visible')
      });
    
      close.addEventListener('click', function(e) {
        e.preventDefault();
        overlay.classList.remove('visible')
      });
    
    
    });
    .thumbnail-image {
      border: 3px solid #BBB;
      border-radius: 4px;
    }
    
    .overlay {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      background-color: rgba(0, 0, 0, 0.3);
    }
    
    .overlay.visible{
    display:block;
    }
    
    .modal-wrapper {
      position: relative;
      height: 100%;
      width: 100%;
    }
    
    .modal-image {
      height: calc(100vh / 1.28);
        width: 100vh;
        margin: auto;
    }
    
    .modal-image>img {
      max-width: 100%;
    }
    
    .modal-close {
      position: absolute;
      top: 10px;
      right: 10px;
      padding: 5px;
      border: 2px solid #444;
      background: #bbb;
      cursor: pointer;
    }
    <div class="fig panel" style="display: float; clear: both">
      <a id="de8adf66-3683-c412-3cd6-45bc686a4ebe">
        <!-- named anchor -->
      </a>
      <h5 class="label">Innovation attributes</h5>
      <div class="caption">
        <p class="first" id="e5a7d435-9a86-3b8e-8a85-5835cdfa4a67">
          <i>Adams, 2003.</i>
        </p>
      </div>
      <a id="ID0EHD" href="#" class="thumbnail">
        <img class="thumbnail-image" src="https://journal.emergentpublications.com/wp-content/uploads/2015/11/de8adf66-3683-c412-3cd6-45bc686a4ebe-300x235.png" alt="show full image" title="show full image" />
      </a>
      <div class="long-desc">
        <div class="permissions">
          <p class="copyright">
            <span class="generated">Copyright</span>
          </p>
          <div class="license">
            <p class="first" id="ID0ESD" />
          </div>
        </div>
      </div>
      <div class="overlay">
        <div class="modal-wrapper">
          <div class="modal-image">
    
            <img src="https://journal.emergentpublications.com/wp-content/uploads/2015/11/de8adf66-3683-c412-3cd6-45bc686a4ebe.png" alt="full image" title="full image" />
          </div>
          <div class="modal-close">X</div>
        </div>
      </div>
    </div>

    【讨论】:

    • 在针对我的具体案例进行了一些剪裁后完美地工作。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多