作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在一个页面上列出多个图像,但当您单击图像时,它会以模式打开。
它适用于第一张图片,但不适用于其他图片,我假设这是一个 JS 问题,我尝试设置一个空的 var,然后将其设置为获取元素 ID(每个 img 都相同),但仅再次第一个作品。
<?php foreach ($img as $thumbnail) {
echo '<img id="myImg" src="'.$thumbnail.'" width="300" height="200">
<div id="imgModal" class="modal">
<span class="closeModal">×</span>
<img class="modal-content" id="myImg1">
<div id="caption"></div>
</div>
<span class="closeModal">×</span>';
}
?>
<script>
var modal = document.getElementById('imgModal');
var img = document.getElementById('myImg');
var modalImg = document.getElementById("myImg1");
img.onclick = function() {
modal.style.display = "block";
modalImg.src = this.src;
}
var span = document.getElementsByClassName("closeModal")[0];
span.onclick = function() {
modal.style.display = "none";
}
</script>
最佳答案
您的代码包含相同的 id
属性用于不同的元素,但 id
必须是唯一的。
id
属性指定 HTML 元素的唯一标识符,以便您可以通过 JS 或 CSS 对其进行操作。如果您使用相同的 id
对于不同的元素,您只会获得页面上的第一个元素。
如果要为多个元素添加事件监听器,请添加 class
给你的<img>
:
echo '<img id="myImg" src="'.$thumbnail.'" width="300" height="200" class="modal-img">
然后为类为 modal-img
的每个元素添加事件监听器.
关于javascript - Img 模态只打开第一个 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46993317/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!