javascript - 如何从数组列表/javascript中弹出图像

标签 javascript html css

我有一个页面,显示数组列表中的元素,每个元素都有一个图像,上限为120px。如何在屏幕中间弹出更大尺寸的图像?我已经看到一些可以帮助解决这个问题的插件,但我想在没有任何插件的情况下做到这一点。

html:

<div id="animallist"></div>

JavaScript:

const animals = [{
    name: "Cat",
    useful: "no",
    image: "https://icatcare.org/app/uploads/2018/07/Thinking-of-getting-a-cat.png"
  },
  {
    name: "Dog",
    useful: "yes",
    image: "https://post.medicalnewstoday.com/wp-content/uploads/sites/3/2020/02/322868_1100-1100x628.jpg"
  },
  {
    name: "Fish",
    useful: "no",
    image: "https://cdn0.wideopenpets.com/wp-content/uploads/2019/10/Fish-Names-770x405.png"
  },
  ]

animals.forEach(addLink);

function addLink(animal, i) {
  const div = document.createElement('div');
  const animalList = document.createElement('h2');
  const image = document.createElement('img');
  image.id = "image";
  animalList.innerHTML =  animal.name + " " +"-"+"useful?" + " "+ animal.useful;
  animalList.style.cssText = "text-align:center;"
  image.src = animal.image;
  div.appendChild(image);
  div.appendChild(animalList);
  div.dataset.animalName = animal.name;
  animallist.appendChild(div);
}

jsfiddle

最佳答案

您必须在开始时使用“display:none”类创建“pop-up”div,然后使用JS删除该“display:none”类并将内部img src更改为您的img。这是工作代码:https://jsfiddle.net/bcdu3L2j/1/

const imgs = document.getElementsByTagName('img');
const imgsArray = Array.from(imgs);

const popUp = document.getElementById('pop-up');
const popImg = document.querySelector('#pop-up img');

function popUpImage(e) {
  const imgSrc = e.target.src;
  popImg.src = imgSrc;
  popUp.classList.remove("hidden");
}

imgsArray.forEach((img) => {
 img.addEventListener('click', popUpImage);
})
popUp.addEventListener('click', () => {
  popUp.classList.add("hidden");
});

关于javascript - 如何从数组列表/javascript中弹出图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907852/

相关文章:

javascript - 需要检测jQuery是否在普通或多选组合框中触发

javascript - jqueryui datepicker时间日期约束

asp.net - 清除图标缺少 HTML5 输入类型=使用 ASP.NET MVC 和 Bootstrap 3 进行搜索

html - 缩小时页面结构中断

html - 在我的网站上,开发人员讨论了如何解决它 [html]

javascript - CSS transition 不同的行为取决于浏览器类型

javascript - 如何使用 Javascript 检测触摸悬停?

javascript - 将 JavaScript 事件添加到 HTML 输入

javascript - Bootstrap 列的中心内容

css - twitter bootstrap 渲染问题(文档中的按钮样式与本地使用不同)