jquery+css3实现的经典弹出层效果示例

下面是jquery+css3实现的经典弹出层效果示例的完整攻略:

一、什么是弹出层

弹出层是一个浮动在当前页面上方的布局,用于展示额外的信息、表单以及对话框等,常用于用户登录、注册、购物车、提示弹窗等。通常开发者在前端页面中使用div容器实现弹出层的效果,可以通过CSS设置弹出框的大小、位置、背景等等,而jQuery则可以方便地对弹出框进行控制。

二、利用jQuery+CSS3实现弹出层效果

在实现弹出层效果时,可以通过jQuery的click()方法监听点击事件,当特定元素被点击时,通过动态创建div元素来实现弹出层的效果,同时利用CSS3来设置弹出层的风格和动画。下面以两个示例来详细讲解:

示例一:点击按钮弹出层

首先,需要HTML代码中添加一个按钮元素(如下):

<button id="openModal">点击打开弹出层</button>

在JS代码中,利用jQuery的click()方法监听按钮元素的点击事件。当按钮被点击时,需要动态创建一个div元素(如下):

$('#openModal').click(function () {
  // 手动创建弹出层容器元素
  var modal = $('<div class="modal"></div>');
  // 将新创建的元素添加到body元素中
  $('body').append(modal);
});

接着,需要在CSS文件中添加样式来对弹出层容器进行美化:

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  justify-content: center;
  align-items: center;
}

此时,弹出层容器元素已经创建好了,但是还需要添加关闭按钮和关闭事件。

在JS代码中,添加一个关闭按钮:

// 创建关闭按钮
var closeButton = $('<button></button>');
// 给关闭按钮添加文字和类名
closeButton.addClass('close').html('&times;');
// 将关闭按钮添加到弹出层容器中
modal.append(closeButton);

同时在CSS中添加关闭按钮的样式:

.close {
  position: absolute;
  top: 10px;
  right: 10px;
  border: none;
  background: none;
  font-size: 20px;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 0.3s ease-in-out;
}
.close:hover {
  opacity: 1;
}

最后,在JS代码中为关闭按钮添加点击事件,关闭弹出层容器:

// 设置关闭按钮点击事件
closeButton.click(function () {
  modal.remove();
});

这样,一个简单的点击按钮弹出层的效果就实现了。示例代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>示例一:点击按钮弹出层</title>
    <style type="text/css">
      .modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.3);
        display: flex;
        justify-content: center;
        align-items: center;
      }

      .close {
        position: absolute;
        top: 10px;
        right: 10px;
        border: none;
        background: none;
        font-size: 20px;
        cursor: pointer;
        opacity: 0.5;
        transition: opacity 0.3s ease-in-out;
      }

      .close:hover {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <button id="openModal">点击打开弹出层</button>
    <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
        $('#openModal').click(function () {
          var modal = $('<div class="modal"></div>');
          $('body').append(modal);

          var closeButton = $('<button></button>');
          closeButton.addClass('close').html('&times;');
          modal.append(closeButton);

          closeButton.click(function () {
            modal.remove();
          });
        });
      });

      // 代码来自阮一峰的网络日志
      // https://www.ruanyifeng.com/blog/2021/01/css3-popup.html
    </script>
  </body>
</html>

示例二:点击图片弹出层

在本示例中,需要添加点击图片的事件监听器,关于图片,我们可以直接利用网络上的图片地址。在点击图片后,通过JavaScript创建弹出层容器,再在弹出层中添加图片元素并对其进行定位,最后通过CSS3实现弹出层的缩放动画效果。示例代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>示例二:点击图片弹出层</title>
    <style type="text/css">
      .modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.3);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: 9999;
        opacity: 0;
        -webkit-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out;
      }

      .modal.active {
        opacity: 1;
      }

      .modal img {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-width: 90%;
        max-height: 90%;
        border-radius: 10px;
        box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.3);
      }

      .modal .close {
        position: absolute;
        top: 10px;
        right: 10px;
        border: none;
        background: none;
        font-size: 20px;
        cursor: pointer;
        opacity: 0.5;
        transition: opacity 0.3s ease-in-out;
      }

      .modal .close:hover {
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <div class="image">
      <img src="https://cdn.pixabay.com/photo/2015/01/08/18/27/startup-593327_960_720.jpg" alt="示例图片" />
    </div>
    <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function () {
        $('.image img').click(function () {
          var modal = $('<div class="modal"></div>');
          var img = $(this).clone();
          modal.append(img);
          $('body').append(modal);

          var closeButton = $('<button></button>');
          closeButton.addClass('close').html('&times;');
          modal.append(closeButton);

          closeButton.click(function () {
            modal.removeClass('active');
            setTimeout(function () {
              modal.remove();
            }, 300);
          });

          setTimeout(function () {
            modal.addClass('active');
          }, 10);
        });
      });
    </script>
  </body>
</html>

三、总结

通过本篇攻略,我们了解了如何利用jQuery+CSS3实现弹出层效果,提供了点击按钮弹出层和点击图片弹出层两种示例。弹出层效果可以大大提高用户的交互体验,特别是当我们需要强制性地引导用户执行某些操作时,弹出层就可以在视觉上起到很好的引导作用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery+css3实现的经典弹出层效果示例 - Python技术站

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

相关文章

  • css实现元素居中的N种方法

    下面是关于 “css实现元素居中的N种方法” 的详细讲解: 简介 在网页设计中,经常需要实现元素水平居中或垂直居中的效果。实现这种居中效果,可以用到css中的多种属性和方法。下面将介绍一些常用的 css 居中布局方法。 水平居中 方法一:使用 margin .parent { text-align: center; /* 将子元素放置于父容器中央 */ } …

    css 2023年6月10日
    00
  • springboot html调用js无效400问题及解决

    SpringBoot是一套快速开发的框架,采用了很多现代化的技术来帮助我们快速构建Web应用程序。但是,有时候我们会遇到一些问题,例如在SpringBoot中调用JavaScript文件时出现了400错误。本文将为大家提供SpringBoot调用JavaScript文件时出现400错误的问题以及其解决方法。 问题表现 在SpringBoot中,当我们想要调用…

    css 2023年6月9日
    00
  • 学习Xhtml+CSS2的一些心得体会

    学习XHTML+CSS2的一些心得体会 学习XHTML+CSS2的前置条件 在学习XHTML+CSS2之前,需要先了解HTML和CSS的基础知识。HTML是网页的基础语言,而CSS是网页样式的描述语言。如果没有HTML和CSS的基础,学习XHTML+CSS2会比较困难。 掌握XHTML+CSS2的基本语法 XHTML+CSS2的语法相对HTML和CSS来说更…

    css 2023年6月10日
    00
  • 只要十步就能学会用CSS建设网站 CSS建站的十个步骤(图文教程)

    以下是详细讲解“只要十步就能学会用CSS建设网站 CSS建站的十个步骤(图文教程)”的完整攻略: CSS建站的十个步骤 第一步:建立HTML文档结构 任何一个网站建设都离不开HTML文档结构的构建,因此在使用CSS建设网站前,必须先建立HTML文档结构。HTML文档结构通常由头部、导航、正文、侧栏、脚注等组成。 例如: <!DOCTYPE html&g…

    css 2023年6月9日
    00
  • CSS样式定义的优先级顺序介绍

    下面我将为你详细讲解CSS样式定义的优先级顺序介绍的完整攻略。 1. 优先级顺序基本介绍 在Web开发中,我们经常需要使用CSS对页面元素进行样式定义。对于同一元素的多个样式定义,可能存在优先级的问题。CSS样式定义的优先级顺序介绍就是解决这类问题的关键。 CSS样式定义的优先级顺序由以下几个因素决定(按优先级降序排列):- !important优先级最高-…

    css 2023年6月9日
    00
  • CSS设置网页的字体 防浏览器浏览页面字体变形

    CSS设置网页的字体 防浏览器浏览页面字体变形 在CSS中,可以通过设置字体来控制网页中的文本样式。但是,不同的浏览器可能会对字体进行不同的渲染,导致页面字体变形。本攻略将详细讲解如何设置网页的字体,以及如何防止浏览器浏览页面字体变形。 1. 设置字体 在CSS中,可以通过font-family属性来设置字体。font-family属性可以接受多个字体名称作…

    css 2023年5月18日
    00
  • vue脚手架中配置Sass的方法

    下面是关于在Vue脚手架中配置Sass的完整攻略。 安装sass-loader和node-sass 要在Vue脚手架中使用Sass,需要先安装sass-loader和node-sass。打开终端进入项目根目录,输入以下命令进行安装: npm install sass-loader node-sass –save-dev 配置Vue项目 在项目根目录中创建v…

    css 2023年6月9日
    00
  • CSS3 background-image颜色渐变的实现代码

    CSS3 background-image颜色渐变的实现代码可以通过CSS3的background属性中的gradient函数来实现。 线性渐变 线性渐变可以通过以下代码实现: background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); 其中…

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