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日

相关文章

  • jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】

    以下是实现点击图片放大缩小预览功能的完整攻略: 步骤一:下载jQuery库文件 首先需要在网站上引入jQuery库文件,可以在官网(https://jquery.com/)进行下载。将下载好的jQuery文件放在项目的js目录下。 步骤二:编写HTML页面 紧接着,可以在HTML页面中编写图片预览模块的HTML代码。以下是一个简单的示例: <div c…

    css 2023年6月10日
    00
  • ElementUI实现在下拉列表里面进行搜索功能详解

    下面我会详细讲解如何使用ElementUI来实现在下拉列表中进行搜索的功能,包含以下步骤: 安装ElementUI组件库 引入ElementUI Select组件 使用filterable属性启用搜索功能 自定义搜索函数 具体步骤如下: 1. 安装ElementUI组件库 首先需要安装ElementUI组件库,可以通过以下命令进行安装: npm instal…

    css 2023年6月10日
    00
  • vue3过渡动画的详解

    Vue3过渡动画的详解 在 Vue3 中,过渡动画的实现更加简单易用,本文将从以下几个方面介绍Vue3的过渡动画: 过渡类名 过渡模式 自定义过渡函数 示例程序 过渡类名 在 Vue3 中,过渡类名的命名规则和 Vue2 一样。当元素被插入、更新或删除时,你可以在元素上添加不同的 class 名称来指定不同的状态。 Vue3 中的过渡类名和 Vue2 中的类…

    css 2023年6月10日
    00
  • JS+CSS实现大气的黑色首页导航菜单效果代码

    下面给出JS+CSS实现大气的黑色首页导航菜单效果的攻略。 1. 准备工作 在实现这一效果之前,我们需要先对所需资源进行准备,包括HTML结构、CSS样式和附带的JS脚本文件。 1.1 HTML结构 我们需要准备一个带有导航菜单的HTML结构。该结构中应当包含以下内容: 一个导航菜单容器,用于包裹所有导航菜单项; 多个导航菜单项,用于显示不同的导航链接; 一…

    css 2023年6月10日
    00
  • CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产

    对于“CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产”的完整攻略,建议分为以下几个部分来讲解: 色调旋转滤镜的基本知识 通过CSS实现色调旋转滤镜效果 批量生产按钮的方法 下面我会详细讲解每个部分。 1. 色调旋转滤镜的基本知识 色调旋转滤镜是CSS filter滤镜中的一个函数,语法格式如下: filter: hue-rotate(…

    css 2023年6月10日
    00
  • 解决vue-cli3创建使用iview定制主题javascriptEnabled找不到该配置项

    当使用vue-cli3创建项目并使用iview做UI组件库时,可能会遇到找不到javascriptEnabled配置项的问题,这是因为javascriptEnabled是Less-loader的配置项,而iview使用的是Less的定制主题。 为了解决该问题,需要在项目根目录下创建vue.config.js文件,在该文件中配置Less-loader的java…

    css 2023年6月9日
    00
  • 300 多行css代码搞定微信 8.0 的炸裂特效

    下面就为您详细讲解”300 多行css代码搞定微信 8.0 的炸裂特效”的完整攻略。 1. 背景介绍 本文介绍的是如何利用 CSS3 实现微信8.0新版的炸裂特效。炸裂特效主要是通过 CSS3 动画和过渡来实现的,其效果可以让页面元素在鼠标 hover 或点击时以炸裂的形式消失,十分惊艳。 2. 实现步骤 2.1 HTML结构 首先要有一个 HTML 结构来…

    css 2023年6月9日
    00
  • jQuery实现带滚动线条导航效果的方法

    下面是“jQuery实现带滚动线条导航效果的方法”的完整攻略。 一、前置知识点 在进行本篇攻略前,你需要掌握以下 jQuery 基础知识: 选择器 事件 动画和效果 二、实现步骤 HTML 结构 首先,我们来构建页面的 HTML 结构,如下所示: <nav> <ul> <li><a href="#secti…

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