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日

相关文章

  • 30个开发人员有用的CSS代码片段整理值得借鉴

    首先我需要解释一下什么是“30个开发人员有用的CSS代码片段整理值得借鉴”以及它的背景和意义。 “30个开发人员有用的CSS代码片段整理值得借鉴”是一篇博客文章,由一名前端开发人员整理并发布。这篇文章收集了30个CSS代码片段,这些代码片段可以帮助开发人员快速解决日常开发中遇到的一些常见问题,提高开发效率。 现在我来为你详细讲解一下这篇文章的完整攻略: 1.…

    css 2023年6月9日
    00
  • jquery插件实现鼠标隐藏

    实现鼠标隐藏需要通过 jQuery 插件的方式,下面是具体的实现攻略: 步骤一:创建 jQuery 插件 先创建一个名为 jquery.mouseHide.js 的文件,将以下代码放入其中,以创建一个名为 mouseHide 的插件。 (function( $ ) { $.fn.mouseHide = function() { var timer; this…

    css 2023年6月10日
    00
  • CSS line-height行高上下居中垂直居中样式属性

    CSS的line-height属性可以设置行间距和文字高度,同时还可以实现文本的上下居中和垂直居中。以下是详细的攻略: 基础用法 line-height的基本语法为: element { line-height: value; } 其中,element表示要设置行高的元素,value可以是一个数字、一个百分比值或者一个长度值,它们都是相对于该元素的字体大小计…

    css 2023年6月9日
    00
  • Bootstrap企业网站实战项目4

    Bootstrap企业网站实战项目4是一项基于Bootstrap框架的网站建设项目,适合于企业网站的建设或者其他类似场景的实际应用。其完整攻略包含以下几个步骤: 步骤1:准备 下载并安装Bootstrap框架; 创建一个新项目,并在项目中引入Bootstrap的资源文件,包括样式表、JavaScript文件和字体图标等; 在项目中创建所需的HTML和CSS文…

    css 2023年6月10日
    00
  • 详解CSS粘性定位 sticky

    详解CSS粘性定位 sticky 什么是粘性定位 sticky 粘性定位(sticky)是CSS定位(position)属性的一种值。 和相对定位(relative)、绝对定位(absolute)、固定定位(fixed)不同,粘性定位是一种比较特殊的定位方式,它介于相对定位和固定定位之间,可以理解为“相对于父容器定位,但是在滚动到预定位置时会固定在窗口中不滚…

    css 2023年6月9日
    00
  • JQuery contains的选择器

    当我们需要选择包含特定文本的元素时,我们可以使用JQuery选择器的contains选择器。这个选择器可以非常方便的帮助我们选择特定的元素。 1. 基本语法 在JQuery中,我们可以使用以下语法进行包含特定文本的元素选择。 $("*:contains(‘text’)") 其中,’*’表示任意元素,’text’表示我们想要选择包含的文本。…

    css 2023年6月10日
    00
  • 使用纯CSS实现动态晴阴雨雪(单标签)

    使用纯CSS实现动态晴阴雨雪是一项很有趣的任务。下面是实现的基本思路和步骤。 基本思路 实现动态晴阴雨雪的关键在于使用CSS动画和transform变换来达到不同效果。我们可以利用单标签来实现对不同天气情况的响应。 实现步骤 首先,在HTML中创建一个div元素,并使用CSS设置其样式。 <div class="weather-animati…

    css 2023年6月9日
    00
  • 深入浅析CSS 的多种背景及使用场景和技巧

    深入浅析CSS 的多种背景及使用场景和技巧 背景介绍 在网页设计和开发中,CSS 的背景是一个非常重要的部分。它可以添加图像、颜色和样式,为网页提供更加丰富、美观的外观。在实际开发过程中,我们需要根据具体需求来选择合适的背景方式,并掌握相应的技巧。 CSS 背景的使用方式 1. 背景颜色 背景颜色是最基本的背景类型之一。可以通过 CSS 的 backgrou…

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