【发布时间】:2021-04-30 20:43:28
【问题描述】:
let parent = document.getElementById("parent");
let img = document.getElementById("img");
parent.addEventListener("click", function() {
parent.style.display = "none";
});
img.addEventListener("click", function(e) {
e.stopPropagation();
})
#parent {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: blue;
}
#img {
width: 100%;
height: 100%;
object-fit: contain;
}
<div id="parent">
<img src="https://dummyimage.com/600x400/000/fff" id="img">
</div>
基本上,我想要实现的是一个覆盖整个窗口的弹出窗口,并具有一个居中的图像,该图像延伸到最大高度或宽度(取决于图像尺寸)并保持纵横比。完整图像仍然应该是可见的。当您单击剩余的可见父级蓝色背景时,父级和图像都应该消失。
父事件未触发。但是如果我删除 CSS 代码,事件就会触发。这里发生了什么?
【问题讨论】:
-
您知道您在运行时使用的图像的长宽比吗?是否可以将此数据添加到 HTML 输出中?
-
@yunzen 不。我在想也许有一个简单的 CSS 解决方案,但我想我会采用 JavaScript 方式
标签: javascript css events object-fit