详解JavaScript实现JS弹窗的三种方式

详解JavaScript实现JS弹窗的三种方式

前言

在网页开发中,经常会用到弹窗这个功能。弹窗可以用来展示一些重要信息、提醒用户进行操作,甚至用来进行登录等相关操作。本文将详细介绍 JavaScript 实现三种 JS 弹窗的方式。

方式一:原生 JavaScript 实现

原生 JavaScript 实现弹窗的方式主要使用 window.alert()window.confirm()window.prompt() 这三个方法实现。

1. window.alert()

window.alert("这是一个 alert 弹窗");

以上代码可以创建一个带有 OK 按钮的弹窗,点击 OK 按钮后弹窗会自动关闭。window.alert() 方法可以用于提醒用户一些信息。

2. window.confirm()

if(window.confirm("你确定要删除这个文件吗?")){
    // 用户点击确定按钮
} else {
    // 用户点击取消按钮
}

以上代码可以创建一个带有确定和取消按钮的弹窗,如果用户点击确定按钮,程序的执行会跳转到 if 语句的代码块中,否则跳转到 else 语句的代码块中。

3. window.prompt()

var userName = window.prompt("请输入您的名字:");
if (userName != null){
    document.write("你好," + userName + "!");
}

以上代码可以创建一个带有输入框、确定和取消按钮的弹窗。当用户点击确定按钮时,弹窗会返回输入框中的内容。

方式二:使用第三方插件

除了原生 JavaScript 实现外,还可以使用一些第三方插件实现弹窗的效果。其中比较常见的插件有 jQuery UI、SweetAlert、layer 等。

1. jQuery UI

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>jQuery UI 弹窗</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.12.4.js"></script>
    <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>

<div id="dialog" title="Basic dialog">
  <p>This is an example of a basic modal dialog.</p>
</div>

<script>
$( "#dialog" ).dialog();
</script>

</body>
</html>

使用 jQuery UI 实现弹窗需要引入 jQuery 和 jQuery UI 的库文件,并在代码中指定弹窗的标题、内容等相关参数。

2. SweetAlert

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>SweetAlert 弹窗实例</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@10.8.0/dist/sweetalert2.min.css">
</head>
<body>

  <button onclick="showAlert()">SweetAlert 弹窗</button>

  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@10.8.0/dist/sweetalert2.min.js"></script>
  <script>
    function showAlert() {
      Swal.fire({
        title: '警告',
        text: '你确认要删除这条数据吗?',
        icon: 'warning',
        showCancelButton: true,
        cancelButtonText: "取消",
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: '确定'
      }).then((result) => {
        if (result.isConfirmed) {
          Swal.fire(
            '已删除!',
            '你的数据已被删除。',
            'success'
          )
        }
      })
    }
  </script>

</body>
</html>

使用 SweetAlert 实现弹窗需要引入 SweetAlert 的库文件,并在代码中指定弹窗的标题、内容、图标等相关参数。与 jQuery UI 不同,SweetAlert 的弹窗样式更为美观。

方式三:使用 CSS 实现

除了 JavaScript 和第三方插件实现弹窗外,还可以使用 CSS 和 HTML 实现弹窗的效果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS 实现弹窗</title>
<style type="text/css">
    .dialog_box{
        background-color: #fff;
        border: 1px solid #ccc;
        border-radius: 5px;
        box-shadow: 0px 0px 5px #ccc;
        width: 300px;
        height: 200px;
        position: absolute;
        left: 0; right: 0; top: 0; bottom: 0;
        margin: auto;
        padding: 10px;
        text-align: center;
    }
    .mask{
        width: 100%;
        height: 100%;
        background-color: rgba(0,0,0,0.5);
        position: fixed;
        top: 0; left: 0; right: 0; bottom: 0;
        z-index: 100;
        display: none;
    }
    .dialog_box h1{
        font-size: 20px;
        margin-top: 20px;
    }
    .dialog_box button{
        width: 60px;
        margin-top: 30px;
        height: 30px;
    }
</style>
</head>
<body>

<div class="mask"></div>

<div class="dialog_box">
    <h1>欢迎使用弹窗</h1>
    <button onclick="hideDialog()">关闭</button>
</div>

<script>
    function showDialog(){
        document.querySelector('.mask').style.display='block';
        document.querySelector('.dialog_box').style.display='block';
    }
    function hideDialog(){
        document.querySelector('.mask').style.display='none';
        document.querySelector('.dialog_box').style.display='none';
    }
</script>

<button onclick="showDialog()">CSS 弹窗</button>

</body>
</html>

使用 CSS 实现弹窗需要先定义弹窗的样式,再使用 JavaScript 控制弹窗的显示和隐藏。

结束语

以上就是三种实现 JS 弹窗的方式。通过选择不同的方式可以实现不同的效果,读者可以根据自己的需求选择合适的方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解JavaScript实现JS弹窗的三种方式 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • javascript使用for循环批量注册的事件不能正确获取索引值的解决方法

    当使用 for 循环批量注册事件时,经常会遇到无法正确捕获循环变量 i 的问题。这是因为循环结束后,i 的值会变成循环内最后一个迭代的值。这个问题通常称为 JavaScript 的闭包问题。下面是一个简单的示例说明: <!DOCTYPE html> <html> <head> <title>for循环注册事件示…

    JavaScript 2023年6月10日
    00
  • JavaScript数组的使用详解

    JavaScript数组的使用详解 JavaScript是一种广泛使用的编程语言,而数组是它最常用的数据类型之一。JavaScript数组可以存储一组有序的数据并进行一系列操作。本文将详细讲解JavaScript数组的使用方法和常见操作。 创建数组 直接量方式创建数组 可以使用直接量方式创建数组,直接在中括号[]中用逗号隔开每个元素。 示例: let arr…

    JavaScript 2023年5月18日
    00
  • 原生JS封装animate运动框架的实例

    当我们需要进行网页中的动画操作,很多时候会涉及到DOM元素的运动,比如移动、旋转、透明度变化等等。这时候,JavaScript的animate函数封装可以帮助我们更加方便地实现动画效果。 以下是原生JS封装animate运动框架的实例的完整攻略: 1. 利用JavaScript封装animate运动框架 我们首先需要使用JavaScript来封装animat…

    JavaScript 2023年6月10日
    00
  • JavaScript中的getDay()方法使用详解

    根据你的要求,我会用标准的markdown格式文本,为你详细讲解“JavaScript中的getDay()方法使用详解”的完整攻略。 JavaScript中的getDay()方法 在 JavaScript 中,Date 对象有一个 getDay() 方法,该方法用于获取一个星期的第几天,其返回值是一个 0 到 6 的整数,分别对应星期日到星期六。 语法如下:…

    JavaScript 2023年6月10日
    00
  • javascript实时显示当天日期的方法

    让我们开始讲解“JavaScript实时显示当天日期的方法”的完整攻略。 首先,我们需要了解如何在 HTML 中引入 JavaScript。在 HTML 中使用 <script> 标签引入 JavaScript 代码文件或者直接在 <script> 标签中编写 JavaScript 代码。下面是一个最简单的例子。 <!DOCTY…

    JavaScript 2023年5月27日
    00
  • 由 JavaScript 的 with 引发的探索

    标题:由 JavaScript 的 with 引发的探索 背景 JavaScript 中的 with 关键字让你可以在代码中使用更简洁的语法来访问一个对象的属性。然而,使用 with 带来的优雅语法留下的是性能问题。本文将介绍如何使用 JavaScript 的基本概念和语法,避免 with 带来的问题。 问题 使用 with 增加了用于作用域查找的代码,导致…

    JavaScript 2023年6月11日
    00
  • JavaScript中各种编码解码函数的区别和注意事项

    让我来详细讲解一下JavaScript中各种编码解码函数的区别和注意事项。 前言 在web开发过程中,我们常常需要将字符串进行编码和解码,以便在网络中传输。JavaScript提供了多种编码解码的函数,本文将详细介绍它们的区别和注意事项。 encodeURIComponent()和decodeURIComponent() 使用方法 encodeURIComp…

    JavaScript 2023年5月20日
    00
  • Ajax基础详解教程(一)

    关于《Ajax基础详解教程(一)》的完整攻略,下面就给大家讲解一下。 1. 简介 该篇教程主要介绍了 Ajax 的基础原理和用法。Ajax 的全称是 Asynchronous JavaScript and XML,即异步 JavaScript 和 XML,它可以随时向服务器请求数据而不用刷新整个页面,从而提高用户的交互体验。相信大家都知道Ajax往往用于实时…

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