Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法

Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法就需要分为如下几个步骤:

第一步:HTML结构

在HTML中定义一个弹出层的结构,代码如下:

<div id="popup-container">
  <div id="popup-content">
    <h2>弹出层标题</h2>
    <p>弹出层内容</p>
  </div>
</div>

其中 popup-container 是弹出层的容器,popup-content 是弹出层的具体内容。

第二步:CSS样式

通过CSS设置弹出层的样式,让其可以水平垂直居中并且添加半透明遮罩效果,代码如下:

#popup-container {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9999;
}

#popup-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  padding: 20px;
  border-radius: 5px;
}

其中 popup-container 设置为 position: fixedtop: 0left: 0width: 100%height: 100% 可以让其覆盖整个屏幕,background: rgba(0, 0, 0, 0.5) 可以添加半透明黑色遮罩。

popup-content 设置为 position: absolutetop: 50%left: 50%transform: translate(-50%, -50%) 可以让其水平垂直居中,background: white 设置为白色背景,padding: 20pxborder-radius: 5px 可以添加一些样式。

第三步:JS实现弹出层

通过JS代码实现点击触发弹出层的效果,代码如下:

const btn = document.getElementById('popup-btn');
const container = document.getElementById('popup-container');

btn.addEventListener('click', function() {
  container.style.display = 'block';
});

其中 popup-btn 是触发弹出层的按钮,popup-container 是弹出层的容器,通过 addEventListener 监听按钮的点击事件,然后将 container 样式的 display 设置为 block 就可以显示弹出层了。

示例

示例一

<!DOCTYPE html>
<html>
<head>
  <title>弹出层示例一</title>
  <style>
    #popup-container {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      z-index: 9999;
    }

    #popup-content {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: white;
      padding: 20px;
      border-radius: 5px;
    }

    #popup-btn {
      display: block;
      width: 150px;
      height: 40px;
      background: #2ecc71;
      color: white;
      font-size: 16px;
      text-align: center;
      line-height: 40px;
      border-radius: 5px;
      margin: 50px auto 0;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <button id="popup-btn">点击弹出层</button>
  <div id="popup-container">
    <div id="popup-content">
      <h2>这是一个弹出层</h2>
      <p>你可以在这里放置内容。</p>
      <button id="popup-close-btn">关闭弹出层</button>
    </div>
  </div>
  <script>
    const btn = document.getElementById('popup-btn');
    const container = document.getElementById('popup-container');
    const closeBtn = document.getElementById('popup-close-btn');
    btn.addEventListener('click', function() {
      container.style.display = 'block';
    });
    closeBtn.addEventListener('click', function() {
      container.style.display = 'none';
    });
  </script>
</body>
</html>

示例二

<!DOCTYPE html>
<html>
<head>
  <title>弹出层示例二</title>
  <style>
    #popup-container {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      z-index: 9999;
    }

    #popup-content {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: white;
      padding: 20px;
      border-radius: 5px;
    }

    #popup-btn {
      display: block;
      width: 150px;
      height: 40px;
      background: #3498db;
      color: white;
      font-size: 16px;
      text-align: center;
      line-height: 40px;
      border-radius: 5px;
      margin: 50px auto 0;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <button id="popup-btn">点击弹出层</button>
  <div id="popup-container">
    <div id="popup-content">
      <h2>这是另一个弹出层</h2>
      <p>你可以在这里放置更多内容。</p>
      <button id="popup-close-btn">关闭弹出层</button>
    </div>
  </div>
  <script>
    const btn = document.getElementById('popup-btn');
    const container = document.getElementById('popup-container');
    const closeBtn = document.getElementById('popup-close-btn');
    btn.addEventListener('click', function() {
      container.style.display = 'block';
    });
    closeBtn.addEventListener('click', function() {
      container.style.display = 'none';
    });
  </script>
</body>
</html>

以上就是制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法及示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 解析CSS中的Grid布局完全指南

    解析CSS中的Grid布局完全指南攻略 什么是Grid布局 Grid布局是一种用于布局网页的CSS技术,它基于网格系统,能够帮助我们更轻松地划分页面中的各个区域,并使其能够适配不同的屏幕尺寸。使用Grid布局,开发者可以更加高效地控制页面中元素的对齐方式、大小和位置。 如何使用Grid布局 定义容器 要使用Grid布局,需要先定义容器。在CSS中,使用dis…

    css 2023年6月9日
    00
  • 用CSS建设网站的实例

    以下是使用CSS建设网站的完整攻略,过程中附带两个示例。 1. 了解CSS基础知识 在使用CSS建设网站之前,首先需要了解CSS的基础知识,如CSS属性、选择器、盒子模型等。可以通过阅读教程或书籍来学习,还可以通过看代码示例来巩固所学知识。 2. 设计网站并实现HTML结构 在使用CSS布局之前,需要先设计好网站,并使用HTML代码实现页面内容结构。HTML…

    css 2023年6月9日
    00
  • CSS教程之div垂直居中的多种方法

    下面是关于CSS中div垂直居中的多种方法的完整攻略。 方法一:使用flex布局 在CSS3中,flex布局提供了一种简单且有效的垂直居中方法。可以通过以下步骤实现: 将父元素的display属性设置为flex 将父元素的justify-content和align-items属性都设置为center,即水平居中和垂直居中。 示例如下: <style&g…

    css 2023年6月10日
    00
  • Angular4 中常用的指令入门总结

    Angular4 中常用的指令入门总结可以帮助初学者快速掌握 Angular4 中常用的指令知识,包括结构指令、属性指令、双向绑定等内容。下面是一个完整的攻略: 目录 结构指令 ngIf ngFor 属性指令 ngClass ngStyle 双向绑定 ngModel 1. 结构指令 在 Angular4 中,结构指令用于控制 HTML 元素的显示和隐藏,以及…

    css 2023年6月9日
    00
  • 利用CSS3的3D效果制作正方体

    制作3D正方体这个过程通常可以分为以下几个步骤: 1.确定一个容器,为3D场景提供空间,可以设定宽、高、以及透视效果的角度。 2.设置立方体的六个面,让它们呈现出正方形。 3.将六个面浮起来,让立方体看起来具有体积感。 下面将详细讲解如何实现以上的步骤,其中包括两个样例说明: 1.基础版3D正方体: HTML代码如下: <div class=&quot…

    css 2023年6月10日
    00
  • JavaScript异常处理

    JavaScript异常处理可以帮助开发人员减少代码中的错误,提高代码的健壮性和稳定性。在 JavaScript 中,异常是由错误或异常条件引起的程序流控制中的偏差,也就是程序出了问题。 JavaScript异常处理通常使用 try-catch 语句块实现。try 语句块包含可能引发异常的代码,而 catch 语句块用于捕捉异常并处理它们。以下是一个基本的 …

    Web开发基础 2023年3月30日
    00
  • Html+CSS浮动的广告条实现分解

    HTML+CSS浮动的广告条实现分解主要包括以下几个步骤: 创建HTML文件 在HTML文件中,首先需要添加标签来指定文档使用UTF-8编码,然后添加一个div容器作为广告条的父元素,再添加一个a标签作为广告条显示的内容。代码示例如下: <!DOCTYPE html> <html> <head> <meta char…

    css 2023年6月9日
    00
  • 常用技巧margin负外边距的使用介绍

    下面是对常用技巧“margin负外边距”的使用介绍的详细攻略。 什么是负外边距 在CSS中,我们经常会用到外边距(margin)来控制元素之间的间距。而负外边距(negative margin)则是指一个元素向外扩展,覆盖在相邻元素上的效果,即将元素的外边距设置为负数值。 使用负外边距的技巧 1. 清除浮动 在布局中,经常会使用浮动来进行元素的排列。但是,如…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部