javascript - 重置图像模式以防止显示以前的照片
问题描述
我的模式有一个问题,它在显示刚刚单击的图像之前显示前一个图像。我相信我需要在关闭时重置模式以防止这种情况发生。
只是为了澄清,模态不会滑到下一个图像。需要关闭它才能选择下一个图像。
我曾尝试在模式关闭时重置 HTML,但它似乎不起作用。
const modal = document.querySelector('.modal');
const previews = document.querySelectorAll('.solution-image-container img');
const original = document.querySelector('.full-img');
previews.forEach(preview => {
preview.addEventListener('click', () => {
modal.classList.add('open');
original.classList.add('open');
const originalSrc = preview.getAttribute('data-original');
original.src = originalSrc;
})
});
modal.addEventListener('click', (e) => {
if (e.target.classList.contains('modal')) {
modal.classList.remove('open');
original.classList.remove('open');
}
if (modal.style.opacity === 0) {
modal.innerHTML = "";
}
});
.content-container {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 3rem;
width: 100%;
}
.solution-image-container {
display: flex;
align-items: center;
justify-content: center;
width: 50%;
flex-direction: column;
}
.solution-image-container img {
max-width: 100%;
height: auto;
border-radius: 5px;
cursor: pointer;
}
.images-gallery {
display: flex;
align-items: center;
justify-content: center;
margin: 1rem 0;
grid-gap: 1rem;
width: 100%;
}
#gallery-img {
height: 150px;
width: 150px;
object-fit: cover;
}
.modal {
background: rgba(0, 0, 0, 0.7);
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 50;
opacity: 0;
pointer-events: none;
transition: 0.25s ease-out;
}
.modal.open {
opacity: 1;
pointer-events: all;
}
.full-img {
position: absolute;
height: 80%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 5px;
}
<div class="content-container">
<div class="solution-image-container">
<img class="big-img"
src="https://source.unsplash.com/random/350x350"
srcset=""
data-original="https://source.unsplash.com/random/350x350"/>
<div class="images-gallery">
<img
id="gallery-img"
src="https://source.unsplash.com/random/151x151"
alt=""
srcset=""
data-original="https://source.unsplash.com/random/151x151"
/>
<img
id="gallery-img"
src="https://source.unsplash.com/random/152x152"
alt=""
srcset=""
data-original="https://source.unsplash.com/random/152x152"
/>
<img
id="gallery-img"
src="https://source.unsplash.com/random/153x153"
alt=""
srcset=""
data-original="https://source.unsplash.com/random/153x153"
/>
</div>
</div>
</div>
<div class="modal">
<img alt="" class="full-img" />
</div>
解决方案
推荐阅读
- adaptive-cards - 尝试制作表格时自适应卡片未显示所有键和值
- reactjs - 如何在功能性 React 组件中使用动态 JS 库(wavesurfer.js)?
- java - 在为图像设置动画时,我在 android studio 中遇到空对象引用错误
- python - python中字符串替换期间的内存错误
- javascript - Redux 异步问题 - 无法读取未定义的属性“名称”
- c - 使用正确的循环使用校对我的代码
- python - 循环遍历两个列表
- java - 通过 Java 运行 Python 脚本,只需导入一次
- variables - 从 Azure 数据工厂中的源结果设置变量
- vb.net - 将泛型类型扩展到继承的接口