3 回答
TA贡献1777条经验 获得超10个赞
ID 必须是唯一的,不能重复。
更改:id="myImg"至class="myImg"
更改:#myImg:hover至.myImg:hover
新的 javascript,循环遍历图像
window.onload = function() {
var modal = document.getElementById('myModal');
var imgs = document.querySelectorAll('.myImg');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
imgs.forEach(function(img){
img.onclick = function() {
modal.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
});
var span = document.getElementsByClassName("close")[0];
span.onclick = function() {
modal.style.display = "none";
}
}
TA贡献2019条经验 获得超9个赞
每个元素的属性 ID 都是唯一的。而 document.getElementById 将只选择文档中存在的第一个元素。
var lightboxes = document.querySelectorAll('.lightbox');
function lightboxModal(e) {
const src = e.target.getAttribute('src');
//do your modal here
}
lightboxes.forEach((el) => {
el.addEventListener('click', lightboxModal);
});
<img src="https://randomwordgenerator.com/img/picture-generator/53e2d0464f5baf14f1dc8460962e33791c3ad6e04e507440742a7ad59f49c3_640.jpg" class="lightbox" />
<img src="https://picsum.photos/536/354" class="lightbox" />
TA贡献1891条经验 获得超3个赞
你在哪里
img.onclick = function() {
modal.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
您现在需要添加所有图像,所以
var fullSizeFunc = function(e) {
model.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
document.querySelectorAll("IMG").forEach(function(i, val) {
this.addEventListener("click", fullSizeFunc);
});
添加回答
举报
