javascript - Css 模态框 z 索引不起作用

标签 javascript html css

我正在尝试构建简单的模式,但由于某些原因 z-index 不起作用。这里有什么问题?

document.addEventListener("DOMContentLoaded", function() {
  var aTag = document.querySelector('.img-box');

  aTag.addEventListener('click', function(e) {
    e.preventDefault();

    document.body.classList.add('overlay');

    var img = document.createElement('img'),
        modalBox = document.getElementById('modal-box')

    img.src = this.href;

    modalBox.appendChild(img);

  })
});
.overlay {
  position: fixed;
  top: 0;
  left: 0;
  background: #000;
  opacity: 0.4;
  width: 100%;
  height: 100%;
}
#modal-box {
  z-index: 1;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#modal-box img {
  max-width: 100%;
}
<a href="http://placehold.it/400x200" class="img-box">
  <img src="http://placehold.it/100x100" />
</a>

<div id="modal-box"></div>

备用演示:http://codepen.io/phpnetanel/pen/qEjJbo

最佳答案

问题是您将 .overlay 类添加到文档正文中。其余内容保存在文档正文中,因此位于顶部。创建一个新的 overlay div 并将其添加到 body 并对其应用 .overlay 类。

这是一个工作示例:http://codepen.io/anon/pen/EaXdKw

关于javascript - Css 模态框 z 索引不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149079/

相关文章:

html - 删除手机上的链接

html - 为什么 favicon 图标不显示在 Firebug 网络面板中

c# - ajax 调用后 Controller 中的 Formcollection 输入值为空

javascript - 在按钮单击时切换动画 Div

javascript - 固定 div 的宽度,即使数据很小

javascript - AngularJS - 居中图像的水平滚动条

div 的 JavaScript 随机边距仅适用于第一个 div

javascript - React Native - 如何独立设置 View 尺寸屏幕尺寸?

php - mootools单选按钮问题

javascript - 隐藏所有后代表行