JS弹出层的显示与隐藏示例代码

JS弹出层是Web开发中非常常见的一个功能。下面,我们来详细讲解如何实现JS弹出层的显示与隐藏。

1. HTML结构

首先,我们需要进行HTML结构的搭建。以下是一个最基础的HTML结构:

<!--触发弹出层的按钮-->
<button id="showBtn">显示弹出层</button>

<!--弹出层-->
<div id="popup">
  <p>这里是弹出层的内容</p>
  <button id="hideBtn">隐藏</button>
</div>

2. CSS样式

接下来,我们为弹出层添加样式。这里,我们设置弹出层的初始状态为隐藏(display:none),当用户点击按钮后,弹出层才显示出来。

#popup {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 200px;
  background-color: #fff;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

3. JS实现

最后,我们采用JavaScript来实现弹出层的显示与隐藏。这里,我们为按钮绑定点击事件,在点击按钮时显示弹出层,在点击弹出层上的“隐藏”按钮时隐藏弹出层。

//获取按钮
var showBtn = document.getElementById("showBtn");
var hideBtn = document.getElementById("hideBtn");

//获取弹出层
var popup = document.getElementById("popup");

//显示弹出层
showBtn.onclick = function() {
  popup.style.display = "block";
}

//隐藏弹出层
hideBtn.onclick = function() {
  popup.style.display = "none";
}

通过如上代码,我们即可实现JS弹出层的显示与隐藏功能。具体效果可以参考以下两个示例:

示例1:

<!DOCTYPE html>
<html>
  <head>
    <title>示例1 - JS弹出层的显示与隐藏</title>
    <style type="text/css">
      #popup {
        display: none;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 200px;
        background-color: #fff;
        padding: 20px;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
      }
    </style>
  </head>
  <body>
    <!--触发弹出层的按钮-->
    <button id="showBtn">显示弹出层</button>

    <!--弹出层-->
    <div id="popup">
      <p>这里是弹出层的内容</p>
      <button id="hideBtn">隐藏</button>
    </div>

    <script type="text/javascript">
      //获取按钮
      var showBtn = document.getElementById("showBtn");
      var hideBtn = document.getElementById("hideBtn");

      //获取弹出层
      var popup = document.getElementById("popup");

      //显示弹出层
      showBtn.onclick = function() {
        popup.style.display = "block";
      }

      //隐藏弹出层
      hideBtn.onclick = function() {
        popup.style.display = "none";
      }
    </script>
  </body>
</html>

示例2:

<!DOCTYPE html>
<html>
  <head>
    <title>示例2 - JS弹出层的显示与隐藏</title>
    <style type="text/css">
      .popup {
        display: none;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 300px;
        background-color: #fff;
        padding: 20px;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
      }

      .popup h2 {
        margin-top: 0;
      }
    </style>
  </head>
  <body>
    <ul>
      <li><a href="#popup1" class="popupLink">打开弹出层1</a></li>
      <li><a href="#popup2" class="popupLink">打开弹出层2</a></li>
      <li><a href="#popup3" class="popupLink">打开弹出层3</a></li>
    </ul>

    <div id="popup1" class="popup">
      <h2>弹出层1</h2>
      <p>这里是弹出层的内容</p>
      <button class="hideBtn">隐藏</button>
    </div>

    <div id="popup2" class="popup">
      <h2>弹出层2</h2>
      <p>这里是弹出层的内容</p>
      <button class="hideBtn">隐藏</button>
    </div>

    <div id="popup3" class="popup">
      <h2>弹出层3</h2>
      <p>这里是弹出层的内容</p>
      <button class="hideBtn">隐藏</button>
    </div>

    <script type="text/javascript">
      //获取所有的弹出层链接和弹出层
      var popupLinks = document.querySelectorAll(".popupLink");
      var popups = document.querySelectorAll(".popup");
      var hideBtns = document.querySelectorAll(".hideBtn");

      //为弹出层链接绑定点击事件
      for (var i = 0; i < popupLinks.length; i++) {
        popupLinks[i].onclick = function() {
          var popupId = this.getAttribute("href");
          document.querySelector(popupId).style.display = "block";
          return false;
        }
      }

      //为弹出层的“隐藏”按钮绑定点击事件
      for (var i = 0; i < hideBtns.length; i++) {
        hideBtns[i].onclick = function() {
          this.parentNode.style.display = "none";
        }
      }

      //为除了弹出层以外的其他区域绑定点击事件,当用户点击时隐藏弹出层
      document.onclick = function(e) {
        for (var i = 0; i < popups.length; i++) {
          if (popups[i].style.display === "block" && e.target !== popupLinks[i]) {
            popups[i].style.display = "none";
          }
        }
      }
    </script>
  </body>
</html>

以上就是实现JS弹出层的显示与隐藏的完整攻略。无论是单个弹出层还是多个弹出层,我们都可以通过简单的HTML、CSS和JavaScript代码来实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS弹出层的显示与隐藏示例代码 - Python技术站

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

相关文章

  • JS轻松实现CSS设置,DIV+CSS常用CSS设置

    JS轻松实现CSS设置 为了实现JS轻松设置CSS,需要了解以下知识点: 1.获取元素:使用document.getElementById()方法获取需要操作的元素。 2.修改属性:通过修改获取到的元素的属性来实现CSS设置。 代码示例: <div id="example" style="color: red;"…

    css 2023年6月9日
    00
  • Html+CSS浮动的广告条实现分解

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

    css 2023年6月9日
    00
  • PHP经典的给图片加水印程序

    首先,为了实现在图片上加水印,我们需要用到PHP的GD图形库,因此需要确保该扩展已在我们的服务器上启用。可以通过以下代码来检查: <?php phpinfo(); ?> 执行后查看输出结果,如果找到GD图形库相关信息,则表示扩展已启用。 接着,我们需要对代码进行分析、编写。以下为完整的PHP图片加水印程序代码: <?php /** * 图片…

    css 2023年6月10日
    00
  • css选择器_动力节点Java学院整理

    CSS选择器_动力节点Java学院整理 一、什么是CSS选择器 CSS选择器是CSS中用于选择要应用样式的HTML元素的方式。 在CSS中,选择器是指定要应用样式的特定HTML元素的标识符。通过使用CSS选择器,您可以选择要应用样式的HTML元素,从而更改它们的外观。 二、常用的选择器类型 1.元素选择器 元素选择器会选择指定类型的所有元素。示例代码如下: …

    css 2023年6月9日
    00
  • 纯css实现立体摆放图片效果的示例代码

    下面是“纯css实现立体摆放图片效果”的攻略。 1. 准备图片资源 首先,在网站目录下准备多张图片资源,作为实现立体效果的图片。图片的格式可以是jpg、png等。 2. 新建html文件 在网站目录下新建一个html文件,以便将来在其中实现立体效果。可以在文件中添加一个div容器。 <!DOCTYPE html> <html> &lt…

    css 2023年6月10日
    00
  • js原生瀑布流插件制作

    下面我将详细讲解制作 JavaScript 原生瀑布流插件的攻略。 1. 瀑布流布局 瀑布流布局是一种常见的网页布局形式,它的主要特点是多列等宽的布局,每一列中的元素高度可以不同,元素按顺序从上到下排列。这种布局形式可以很好地展示图片、文章等内容。 实现瀑布流布局的方式有很多种,其中一种常见的方式是使用 JavaScript 代码动态计算元素的位置和大小。下…

    css 2023年6月9日
    00
  • 通过Mootools 1.2来操纵HTML DOM元素

    使用Mootools 1.2库来操作HTML DOM元素非常简单,只需掌握一些基本知识即可。 基本概念 在使用Mootools 1.2操作HTML DOM元素之前,需要了解一些基本概念。HTML DOM元素指的是html页面中的各种标签,如div、p、h1等等。Mootools 1.2是一种JavaScript框架,它提供了各种方法和函数,用于操作HTML …

    css 2023年6月11日
    00
  • HTML5新增的Css选择器、伪类介绍

    HTML5新增了一些CSS选择器和伪类,让我们能够更加方便地对选定的HTML元素进行样式的控制。 增强型属性选择器 HTML5新增了一些增强型属性选择器,可以根据属性值的匹配方式来选择相应的元素。 [attribute^=value] 查询属性值以value开头的元素,例如: <div class="round corner"&gt…

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