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日

相关文章

  • CSS3实现图片抽屉式效果的示例代码

    下面详细讲解一下“CSS3实现图片抽屉式效果的示例代码”的完整攻略。 首先,我们来介绍一下实现这个效果的基本思路。我们可以利用CSS3中的transition属性及伪类(:hover)来实现。transition属性可以设置元素的过渡效果,而伪类可以选择当前元素处于某一状态时的样式。我们可以通过将图片元素的高度设置为0,并通过:hover伪类选择器将高度设置…

    css 2023年6月11日
    00
  • JS实现表格响应式布局技巧

    JS实现表格响应式布局技巧可以通过以下步骤来实现: 步骤一:设置表格的HTML结构 首先,需要在HTML文件中创建表格结构。一般来说,表格需要一个表头,以及一个或多个表格行。如下所示: <table> <thead> <tr> <th>Name</th> <th>Age</th&g…

    css 2023年6月10日
    00
  • css设置滚动条颜色与样式以及如何去掉与隐藏滚动条

    请看下面的详细讲解。 CSS设置滚动条颜色与样式 设置滚动条颜色 要设置滚动条的颜色,我们需要使用伪元素::-webkit-scrollbar,再用background-color属性设置滚动条的背景颜色,用thumb伪元素来设置滚动条的滑块颜色。 /* 设置滚动条的背景颜色 */ ::-webkit-scrollbar { background-color…

    css 2023年6月9日
    00
  • 99款高质量免费(X)HTML/CSS模板收集

    以下是关于“99款高质量免费(X)HTML/CSS模板收集”的完整攻略: 收集免费HTML/CSS模板 如果你想寻找免费的HTML/CSS模板,可以通过以下方式收集: 在Github上搜索HTML/CSS模板,Github上有大量开源的HTML/CSS模板可以使用,并且可以通过Fork导入到自己的项目中。 在专业的模板网站上下载,例如Free CSS、Tem…

    css 2023年6月9日
    00
  • Vue各种loader的基本配置与使用示例教程

    使用Vue进行前端开发时,经常需要使用到各种loader对代码进行转换。以下是关于Vue各种loader的基本配置与使用示例教程的完整攻略。 一、什么是loader 在Vue中,loader是用于将非JavaScript文件转换为JavaScript模块的工具。如将*.vue文件转换为可被浏览器识别的JavaScript代码。不同类型的文件需要配置不同的lo…

    css 2023年6月9日
    00
  • CSS3 清除浮动的方法示例

    CSS中使用浮动(float)可以将元素脱离文档流并实现排版效果。但是,浮动元素会对其父元素和兄弟元素产生影响,可能导致布局错乱。因此,我们需要使用清除浮动的方法来避免这种局面。以下是CSS3中清除浮动的几种方法: 1、使用 clear 属性 首先介绍的是 clear 属性。在 CSS 中, clear 属性用于清除浮动。该属性有四个取值:left,righ…

    css 2023年6月10日
    00
  • ES6实现图片切换特效代码

    现在我将为你详细讲解“ES6实现图片切换特效代码”的完整攻略。 1. 准备工作 在开始编写代码前,我们需要准备一些工作: 1.1 HTML 首先,我们需要在HTML中设置图片的容器和按钮。具体的HTML代码如下: <div class="img-container"> <img src="image1.jpg&…

    css 2023年6月10日
    00
  • 对网页中层的固定实现代码

    针对网页中层的固定实现代码,我们有两种常见的实现方式: 一、使用CSS的position属性实现 CSS中的position属性可以设置元素的定位方式,常用的取值有static、relative、absolute和fixed。其中,将元素的position属性设置为fixed,可以使该元素以浏览器窗口为基准进行定位,即无论页面如何滚动,该元素都会保持在视窗固…

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