Web实现模态框

Web实现模态框

点击实现模态框,在模态框里实现各种操作。下面是预览图。

请添加图片描述

实现方法:

html

<div class="container">
    <p>作为一名资深吃货,我的梦想是:吃不胖然后吃遍天下!那么你呢?</p>
    <!-- 触发器 -->
    <div id="img-box">
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/chnrou.png" alt="菜1"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/cjun.png" alt="菜2"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/dzhhui.png" alt="菜3"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/gbfen.png" alt="菜4"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/hycha.png" alt="菜5"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/mdfu.png" alt="菜6"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/sfan.png" alt="菜7"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/xhlrou.png" alt="菜8"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/yzhba.png" alt="菜9"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/cba.png" alt="菜10"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/xbdfu.png" alt="菜11"></a></div>
      <div class="grid-item"><a href="#"><img class="real-img" src="./images/zjya.png" alt="菜12"></a></div>
    </div>
  </div>  
<!-- 模态框 -->
  <div id="modal-box">
    <!-- 内容 -->
    <div id="modal-container">
      <!-- 关闭按钮 -->
      <span id="close">×</span>
      <img id="insert-img">
      <p id="insert-title"></p>
    </div>
  </div>

css

/* 遮罩 */
#modal-box {
/* 定位、设置透明度、设置显示层 */
  display: none;
  width: 100%;
  height: 100%;
  position: fixed;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.7);
  top: 0px;
  left: 0px;
  z-index: 1;
}

#modal-container {
   /* 模态框显示,垂直居中定位 */
  width: 720px;
  height: 480px;
  background-color: #f6f6f6;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 20px;
}

/* 自定义内容样式 */
#insert-img {
  display: block;
  margin: 10px;
  height: 150px;
  width: 225px;
}

#close {
  font-size: 40px;
  font-weight: bold;
  position: absolute;
  top: 5px;
  right: 2%;
  color: #6e6e6e;
}

#insert-title {
  font-size: 30px;
}

js

var imgs = document.getElementsByClassName("real-img");
var modalImg = document.getElementById("insert-img");
var modalBox = document.getElementById("modal-box");
var closeBtn = document.getElementById("close");
var modalTitle = document.getElementById("insert-title");

for (let img of imgs) {
  img.addEventListener('click', function () {
    // 显示操作
    modalBox.style.display = 'block';
    modalImg.src = this.src;
    modalTitle.innerHTML = this.alt;
  })
}

closeBtn.onclick = function () {
  modalBox.style.display = 'none';
}

想要特效操作可以添加动画,比如淡出:

#modal-container {
    animation: grad 1s;
}

@keyframes grad {
  from {
    transform: scale(0.1);
  }

  to {
    transform: scale(1);
  }
}

关键:遮罩层、模态框

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hairy377

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值