JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法

下面是JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法的完整攻略。

1. HTML结构

先看一下要实现的页面结构,包含了一个按钮和一个弹框:

<button id="showModal">打开弹框</button>

<div id="mask"></div>
<div id="modal">
  <h2>弹框标题</h2>
  <p>弹框内容</p>
  <button id="closeModal">关闭</button>
</div>

其中,#mask是遮罩层,#modal是弹框层。

2. CSS样式

接下来先设置好基础的样式:

#mask {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色 */
  z-index: 9999; /* 比后面的内容都要高 */
  display: none; /* 隐藏 */
}

#modal {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); /* 居中 */
  z-index: 10000; /* 比遮罩层高 */
  background-color: #fff; /* 白色背景 */
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); /* 阴影 */
  display: none; /* 隐藏 */
}

这里设置了遮罩层和弹框层的基础样式,并将它们都设为隐藏状态。

3. JS代码

接下来是JS的部分。

首先,我们需要使用JS监听按钮点击事件,来触发弹框的弹出:

var showModalBtn = document.getElementById('showModal');
var closeModalBtn = document.getElementById('closeModal');

showModalBtn.addEventListener('click', function() {
  document.getElementById('mask').style.display = 'block';
  document.getElementById('modal').style.display = 'block';
});

这里使用了addEventListener来监听按钮的点击事件,一旦点击就将遮罩层和弹框层的display属性都设置为block,显示出来。

然后,我们需要使用JS监听遮罩层的点击事件和关闭按钮的点击事件,来触发弹框的关闭:

document.getElementById('mask').addEventListener('click', function() {
  hideModal();
});

closeModalBtn.addEventListener('click', function() {
  hideModal();
});

function hideModal() {
  document.getElementById('mask').style.display = 'none';
  document.getElementById('modal').style.display = 'none';
}

这里使用了addEventListener来监听遮罩层的点击事件和关闭按钮的点击事件,一旦点击就调用hideModal函数,将遮罩层和弹框层的display属性都设置为none,隐藏起来。

4. 总结

以上就是JS+CSS实现弹出全屏灰黑色透明遮罩效果的完整攻略。通过设置基础样式和使用JS监听事件,我们能够实现弹框层的弹出和关闭,从而达到全屏灰黑色透明遮罩的效果。

以下是两个示例说明:

示例一

CodePen上创建一个新的Pen,将以下代码复制到HTML部分:

<button id="showModal">打开弹框</button>

<div id="mask"></div>
<div id="modal">
  <h2>弹框标题</h2>
  <p>弹框内容</p>
  <button id="closeModal">关闭</button>
</div>

将以下代码复制到CSS部分:

#mask {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色 */
  z-index: 9999; /* 比后面的内容都要高 */
  display: none; /* 隐藏 */
}

#modal {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); /* 居中 */
  z-index: 10000; /* 比遮罩层高 */
  background-color: #fff; /* 白色背景 */
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); /* 阴影 */
  display: none; /* 隐藏 */
}

将以下代码复制到JS部分:

var showModalBtn = document.getElementById('showModal');
var closeModalBtn = document.getElementById('closeModal');

showModalBtn.addEventListener('click', function() {
  document.getElementById('mask').style.display = 'block';
  document.getElementById('modal').style.display = 'block';
});

document.getElementById('mask').addEventListener('click', function() {
  hideModal();
});

closeModalBtn.addEventListener('click', function() {
  hideModal();
});

function hideModal() {
  document.getElementById('mask').style.display = 'none';
  document.getElementById('modal').style.display = 'none';
}

这时点击运行就能看到一个按钮,点击后弹出一个带遮罩的弹框。

示例二

在一个普通的网页中,创建一个按钮和一个弹框,HTML部分如下:

<button id="showModal">打开弹框</button>

<div id="mask"></div>
<div id="modal">
  <h2>弹框标题</h2>
  <p>弹框内容</p>
  <button id="closeModal">关闭</button>
</div>

<head>标签内添加以下样式表:

<style>
#mask {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色 */
  z-index: 9999; /* 比后面的内容都要高 */
  display: none; /* 隐藏 */
}

#modal {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%); /* 居中 */
  z-index: 10000; /* 比遮罩层高 */
  background-color: #fff; /* 白色背景 */
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); /* 阴影 */
  display: none; /* 隐藏 */
}
</style>

<body>标签内添加以下JS代码:

<script>
var showModalBtn = document.getElementById('showModal');
var closeModalBtn = document.getElementById('closeModal');

showModalBtn.addEventListener('click', function() {
  document.getElementById('mask').style.display = 'block';
  document.getElementById('modal').style.display = 'block';
});

document.getElementById('mask').addEventListener('click', function() {
  hideModal();
});

closeModalBtn.addEventListener('click', function() {
  hideModal();
});

function hideModal() {
  document.getElementById('mask').style.display = 'none';
  document.getElementById('modal').style.display = 'none';
}
</script>

这时刷新页面就能看到一个按钮,点击后弹出一个带遮罩的弹框。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法 - Python技术站

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

相关文章

  • Bootstrap图片轮播组件Carousel使用方法详解

    Bootstrap图片轮播组件Carousel使用方法详解 Bootstrap是一款目前非常流行的前端开发框架,其中的Carousel(图片轮播)组件可以用于网页展示轮播图或广告图等。接下来详细讲述如何使用Bootstrap中的Carousel组件,包含从起步到实现的完整攻略。 第一步:在HTML文件中引入Bootstrap 首先需要在HTML文件中引入Bo…

    css 2023年6月11日
    00
  • 在Vue中创建可重用的 Transition的方法

    在Vue.js中,Transition组件可以让你添加进入或离开过渡效果。使用Transition组件,可以为你的应用程序提供更好的用户体验。 如果需要在Vue.js中创建可重用的Transition组件,可以按照以下的步骤进行: 1. 创建一个Vue组件 首先,我们需要创建一个Vue组件。这个组件将会是我们的可重用Transition组件的模版。 <…

    css 2023年6月10日
    00
  • 利用CSS3动画实现圆圈由小变大向外扩散的效果实例

    让我们来详细讲解“利用CSS3动画实现圆圈由小变大向外扩散的效果实例”的完整攻略。 1. 编写HTML结构 首先,我们需要在HTML中创建一个div,这个div就是我们需要显示扩散效果的区域。在这里我们把它称为”wrapper”。然后我们在这个div里再嵌套三个div,分别是”circles”、”circles2″、”circles3″,这些div将用于显示…

    css 2023年6月9日
    00
  • CSS中下拉菜单和表单以及弹出层的简单笔记

    当涉及到网站的用户体验时,下拉菜单、表单和弹出层是非常重要的元素。在CSS中,我们可以使用不同的技术和属性来创建这些元素。 下拉菜单 下拉菜单是一种常见的界面元素,它可以让用户轻松地选择选项。在HTML中,我们可以使用<select>元素创建下拉菜单。在CSS中,我们可以使用select选择器和伪类选择器来样式化下拉菜单。 样式化下拉菜单 要样式…

    css 2023年6月10日
    00
  • CSS实现超级链接需要通过双击后跳转

    要实现“CSS实现超级链接需要通过双击后跳转”,我们可以利用CSS中的:hover伪类和JavaScript来实现。 以下为示例说明: 利用JavaScript实现双击跳转 在html中添加一个链接元素,并设置id属性,如下所示: <a id="mylink" href="https://www.example.com&q…

    css 2023年6月10日
    00
  • html转换为pdf案例的一些总结(多图推荐)

    关于“html转换为pdf案例的一些总结”,我可以给你提供以下完整攻略: 1. 背景 在实际开发中,我们经常需要将网页截图或者某些页面内容直接导出为PDF文件。而html转pdf正是这种需求的一种较成熟的解决方案。 2. 实现原理 利用现有第三方库(比如 wkhtmltopdf)将html内容转换为PDF格式,并提供PDF文件的下载或者在浏览器直接展示。 3…

    css 2023年6月9日
    00
  • css3实现背景动态渐变效果

    下面是详细讲解“css3实现背景动态渐变效果”的完整攻略。 简介 在现代web开发中,背景动态渐变效果逐渐成为了一种设计趋势,能够为页面增加一定的视觉效果,更好的吸引用户的注意力。而使用CSS3技术,能够比传统的图像制作更为简便,也更加可控。 实现方法 使用CSS3 Gradient Generator CSS3 Gradient Generator是一个在…

    css 2023年6月9日
    00
  • JavaScript实现点击按钮切换网页背景色的方法

    下面是关于“JavaScript实现点击按钮切换网页背景色的方法”的完整攻略: 1. HTML结构 首先,在HTML页面中需要添加一个按钮和一个div元素,用于显示网页的背景色。 <!DOCTYPE html> <html> <head> <title>JavaScript实现点击按钮切换网页背景色</t…

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