jQuery DIV弹出效果实现代码

当需要在页面中展示一些提示信息、弹出层等时,我们可以通过jQuery的DIV弹出效果来实现。下面是实现该效果的完整攻略:

1. 准备工作

在进行代码编写前,我们需要先引入jQuery库和样式文件,同时也要写好弹出层的HTML代码。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery DIV弹出效果实现</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        .mask {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
            z-index: 9999;
            display: none;
        }
        .popup {
            z-index: 10000;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: #fff;
            border: 1px solid #ccc;
            padding: 20px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
        }
    </style>
</head>
<body>
    <button id="show-popup">弹出层</button>
    <div class="mask"></div>
    <div class="popup" style="display:none;">
        <h2>标题</h2>
        <p>内容</p>
        <button id="close-popup">关闭</button>
    </div>
</body>
</html>

代码中,mask为遮罩层,popup为弹出层,这里采用了绝对定位来使其居中显示。

2. 弹出层效果实现

首先,我们需要定义一个函数来实现弹出层的显示效果。

function showPopup() {
    $('.mask').fadeIn();
    $('.popup').fadeIn();
}

上面的函数中,我们通过fadeIn()方法实现了弹出层的淡入效果。

接下来,在按钮点击事件中调用该函数即可。

$(document).ready(function(){
    $('#show-popup').click(function() {
        showPopup();
    });
});

这里我们使用了jQuery的$(document).ready()方法来保证页面加载完成后再执行弹出层的事件绑定。

3. 关闭弹出层

我们还需定义一个函数来实现关闭弹出层的效果:

function closePopup() {
    $('.mask').fadeOut();
    $('.popup').fadeOut();
}

上面的函数中,我们通过fadeOut()方法实现了弹出层的淡出效果。

接下来,在关闭按钮的点击事件中调用该函数即可。

$(document).ready(function(){
    $('#close-popup').click(function() {
        closePopup();
    });
});

这里注意,关闭按钮的id需要与上面的HTML中定义的id一致。

4. 完整代码

将上述代码组合起来,得到如下完整的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery DIV弹出效果实现</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        .mask {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
            z-index: 9999;
            display: none;
        }
        .popup {
            z-index: 10000;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: #fff;
            border: 1px solid #ccc;
            padding: 20px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
        }
    </style>
</head>
<body>
    <button id="show-popup">弹出层</button>
    <div class="mask"></div>
    <div class="popup" style="display:none;">
        <h2>标题</h2>
        <p>内容</p>
        <button id="close-popup">关闭</button>
    </div>
    <script>
        function showPopup() {
            $('.mask').fadeIn();
            $('.popup').fadeIn();
        }

        function closePopup() {
            $('.mask').fadeOut();
            $('.popup').fadeOut();
        }

        $(document).ready(function(){
            $('#show-popup').click(function() {
                showPopup();
            });

            $('#close-popup').click(function() {
                closePopup();
            });
        });
    </script>
</body>
</html>

5. 示例

为了更好的说明DIV弹出效果实现,在这里我们补充两个简单的拓展例子。

  1. 点击其他部分关闭弹出层

当用户在空白区域点击时,我们也希望能够关闭弹出层。这时,我们需要在弹出层的外部再加上一层容器。

修改HTML代码如下:

<div class="outer">
    <button id="show-popup">弹出层</button>
    <div class="mask"></div>
    <div class="popup" style="display:none;">
        <h2>标题</h2>
        <p>内容</p>
        <button id="close-popup">关闭</button>
    </div>
</div>

然后,我们需要修改Javascript代码如下:

$(document).ready(function(){
    $('#show-popup').click(function() {
        showPopup();
    });

    $('#close-popup').click(function() {
        closePopup();
    });

    $('.outer').click(function(e) {
        if (!$(e.target).closest('.popup').length) {
            closePopup();
        }
    });
});

这里我们添加了一个点击事件在outer上,然后在事件处理函数中判断点击区域是否为popup,如果不是就关闭弹出层。

  1. 阻止弹出层内容冒泡

当弹出层中有一些事件需要阻止冒泡时,我们可以使用如下代码来实现:

$(document).ready(function(){
    $('#show-popup').click(function() {
        showPopup();
    });

    $('#close-popup').click(function() {
        closePopup();
    });

    $('.popup').click(function(e) {
        e.stopPropagation();
    });
});

这里我们添加了一个点击事件在popup上,然后使用e.stopPropagation()方法来阻止冒泡。这样当点击弹出层内容时,就不会触发外层元素的点击事件了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery DIV弹出效果实现代码 - Python技术站

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

相关文章

  • 利用CSS、JavaScript及Ajax实现图片预加载的方法

    很高兴听到您询问如何利用CSS、JavaScript及Ajax实现图片预加载的方法。下面是详细的攻略: 1. 利用CSS实现图片预加载 利用CSS预加载图片是一种非常简单的方法,只需要在CSS文件中使用background-image属性将图片引入即可。以下是实现图片预加载的CSS样式代码和HTML代码示例: #preloaded-img { backgro…

    css 2023年6月9日
    00
  • 详解CSS-opacity子元素继承父元素透明度的解决方法

    下面是详解 “CSS-opacity子元素继承父元素透明度的解决方法” 的攻略。 什么是 CSS-opacity? 在 CSS 中,opacity 属性指定元素的透明度,即元素的不透明度程度。该属性的值介于 0(完全透明) 和 1(完全不透明)之间。例如,设置一个元素的 opacity 为 0.5,那么这个元素会半透明显示。 想象一个问题 当一个元素设置了 …

    css 2023年6月10日
    00
  • Laravel实现用户注册和登录

    我会详细讲解一下Laravel实现用户注册和登录的完整攻略。 环境准备 首先,我们需要准备好Laravel开发环境,包括PHP、Composer等。具体的安装过程可以参考Laravel的官方文档。 创建用户模型和数据库表 在Laravel中,可以使用Artisan命令来快速生成用户模型和数据库迁移文件: php artisan make:model User…

    css 2023年6月10日
    00
  • spring boot 2.x html中引用css和js失效问题及解决方法

    下面是“spring boot 2.x html中引用css和js失效问题及解决方法”完整攻略: 问题描述 在使用Spring Boot 2.x开发web应用时,可能会遇到在HTML文件中引用的CSS和JS失效的问题,无法正确加载页面样式和脚本,这时需要解决这个问题。 解决方法 解决这个问题的方法有两种:一种是将静态资源文件放在Spring Boot提供的默…

    css 2023年6月9日
    00
  • 如何使用CSS3和JQuery easing 插件制作绚丽菜单

    制作绚丽菜单是Web设计中常见的一个需求,而CSS3和JQuery easing插件提供了丰富的动画效果来实现这一目的。下面便将详细讲解如何使用CSS3和JQuery easing插件制作绚丽菜单。 1. 选用样式和插件 首先,我们需要选用可供选择的样式和插件去展示菜单效果。可以选择多种CSS样式和JQuery插件,如Animate.css、Hover.cs…

    css 2023年6月9日
    00
  • 基于jQuery制作小图标上下滑动特效

    下面是详细的攻略: 1.准备工作 首先,需要确保引入了jQuery库,并且在标签中放置以下代码: <script type="text/javascript"> $(document).ready(function(){ }); </script> 接着,在html中插入一个列表,并且用class来添加样式: &l…

    css 2023年6月11日
    00
  • JavaScript实现表单验证

    JavaScript实现表单验证是网站开发中非常常见的任务之一,它可以确保用户输入的信息符合预期,提高网站的可靠性和稳定性。下面将详细介绍该任务的完整攻略: 1. 确定需要验证的表单元素 在进行表单验证之前,我们需要明确需要验证的表单元素。一般来说,输入框、文本框、下拉框等表单元素都需要进行验证。在明确需要验证的表单元素之后,我们可以给它们添加合适的ID和c…

    css 2023年6月10日
    00
  • 罗技g502鼠标灵敏度怎么设置?

    罗技g502鼠标灵敏度设置攻略 如果你使用罗技g502鼠标,你可能想要调整它的灵敏度来适应你的游戏风格。在本文中,我们将提供罗技g502鼠标灵敏度设置的完整攻略。 步骤一:下载罗技G HUB软件 在你尝试调节罗技g502鼠标的灵敏度之前,你需要先下载并安装罗技G HUB软件。该应用程序可以让你轻松地自定义和控制你的罗技设备。你可以在罗技官网下载G HUB软件…

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