javascript - 模态错误

标签 javascript html css wordpress

亲爱的, 当我在 wordpress 中运行此代码时,它无法正常工作。 事情是我想通过单击每张图片来导致模态显示这张照片上关于一个人的文字。 这应该看起来像 - 三列三张图片,单击您可以阅读图片上的人物。

此外,当我向下或向上滚动页面时,模态会落后于其他图片...

// Get the modal
var modal = document.getElementById('myModal');

// Get the button that opens the modal
var btn = document.getElementById('myModals');

// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];

// When the user clicks the button, open the modal 
btn.onclick = function() {
    modal.style.display = "block";
}

// When the user clicks on <span> (x), close the modal
span.onclick = function() {
    modal.style.display = "none";
}

// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
}
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content */
.modal-content {
    background-color: #fefefe;
    margin: auto;
    padding: 20px;
    border: 1px solid #888;
    width: 70%;
}

/* The Close Button */
.close {
    color: #aaaaaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}

.close:hover,
.close:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}
<div id="myModals"><img class="scale-with-grid" src="http://halfway.devil.org.pl/wp-content/uploads/2018/11/MY-BRIGHTEST-DIAMOND-artist.jpg" alt="" /></div>
<div id="myModals"><img class="scale-with-grid" src="http://halfway.devil.org.pl/wp-content/uploads/2018/11/MY-BRIGHTEST-DIAMOND-artist.jpg" alt="" /></div>
<div id="myModals"><img class="scale-with-grid" src="http://halfway.devil.org.pl/wp-content/uploads/2018/11/MY-BRIGHTEST-DIAMOND-artist.jpg" alt="" /></div>
<div id="myModals"><img class="scale-with-grid" src="http://halfway.devil.org.pl/wp-content/uploads/2018/11/MY-BRIGHTEST-DIAMOND-artist.jpg" alt="" /></div>

<div id="myModal" class="modal">

  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">×</span>
    <p><h3>MY BRIGHTEST DIAMOND</h3>
LOREM IPSUM</p>
  </div>

</div>

最佳答案

你正在使用 id 选择器 并且 id 在 HTML dom 中始终是唯一的,我们不会重复使用。

您需要将选择器更改为类并在其上实现 onclick 函数。

喜欢

<div class="img-div"><img class="scale-with-grid" src="http://halfway.devil.org.pl/wp-content/uploads/2018/11/MY-BRIGHTEST-DIAMOND-artist.jpg" alt="" /></div>

var btn = document.getElementsByClassName('img-div');

btn.onclick = function() {
    modal.style.display = "block";
}

关于javascript - 模态错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53446361/

相关文章:

c# - 如何使用 C# 在 Asp.net 中创建编辑缩略图功能(同时上传显示图像)?

html - 具有柔性显示的并排画廊

javascript - 如何向 Ember.js 对象添加动态方法名称?

javascript - 使用 jquery 更改显示的选择选项

javascript - 使用 Angular Formly 时,表单提交中不包含空字段

javascript - 在提交该页面之前检查表单字段值

javascript - jQueryclearInterval 不工作

javascript - 有没有办法隐藏卸载的延迟加载图像的 alt 标签?

javascript - 如何将参数作为函数传递并在单击按钮后调用它

CSS:如何布局3列,2列可选