如何用美观的提示框替换 JavaScript 原生弹窗?

JavaScript 原生的 alert 弹窗是向用户展示消息的一种简单有效的方法,但它们不仅缺乏可定制性,而且外观往往不尽如人意。在 JavaScript 中,我们有几种方法可以将原生 alert 弹窗替换为更加美观的提示框,具体如下:
目录

  • 使用自定义 HTML 和 CSS
  • 使用 SweetAlert 库
  • 使用 CSS 框架

使用自定义 HTML 和 CSS

我们可以构建提示框的 HTML 结构(包括标题、消息和按钮),并利用 CSS 进行样式设计,以打造独特的视觉体验。这种方法虽然提供了最大的控制权,但需要投入更多的编码精力。

示例: 下面的代码创建了一个按钮,点击时会显示一个自定义提示框,允许用户查看消息并在需要时关闭提示框。

HTML


<meta name="viewport"

content="width=device-width, initial-scale=1.0">

Document

<body style="display: flex; justify-content: center;

align-items: center; height: 100vh; margin: 0;">

Fancy Alert Box

This is a custom alert message.

function showAlert() {

document

.getElementById("myAlert")

.style

.display = "block";

}

function closeAlert() {

document

.getElementById("myAlert")

.style

.display = "none";

}

#myAlert {

display: none;

/ Initially hidden /

position: fixed;

/ Stays in place when scrolling /

left: 50%;

top: 50%;

transform: translate(-50%, -50%);

/ Center the box /

background-color: #f1f1f1;

padding: 20px;

border: 1px solid #ddd;

}

`

****输出:****

![Untitled-design-(5)](https://media.geeksforgeeks.org/wp-content/uploads/20240411000627/Untitled-design-(5).gif)Output
## 使用 SweetAlert 库

像 Noty.js 和 [SweetAlert2](https://www.geeksforgeeks.org/reactjs/sweetalert2-advance-version-of-sweetalert/) 这样的库提供了现成的、可编辑的提示框,包含按钮、图标和动画。它们使开发过程变得更加轻松,但同时也引入了外部依赖。

****示例: **** 点击下面的按钮,将会显示一个 SweetAlert2 提示框,其中包含标题、消息、图标和一个“Cool”按钮。

            
            HTML

    `

Document
<link href=

"https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css"

rel="stylesheet"

integrity=

"sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65"

crossorigin="anonymous">

body {

display: flex;

justify-content: center;

align-items: center;

height: 100vh;

margin: 0;

}


<script src=

"https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js">

<script src=

"https://cdn.jsdelivr.net/npm/sweetalert2@11">

document

.getElementById("myButton")

.addEventListener("click", function() {

Swal.fire({

title: ‘Fancy Alert!‘,

text: ‘This is a message from SweetAlert2‘,

icon: ‘success‘,

confirmButtonText: ‘Cool‘

});

});

`

****输出: ****

![Untitled-design-(6)](https://media.geeksforgeeks.org/wp-content/uploads/20240411001821/Untitled-design-(6).gif)Output
## 使用 CSS 框架

我们可以利用 Materialize 和 [Bootstrap](https://www.geeksforgeeks.org/bootstrap/bootstrap-tutorial/) 等框架来获取预设计的提示框组件的各种样式和功能。它们提供了一种简单快捷的解决方案,但自定义的灵活性可能会受到限制。

****示例:**** 下面的示例使用 [Materialize CSS](https://www.geeksforgeeks.org/css/materialize-css/) 框架实现了一个美观的提示框,以改善用户体验和视觉吸引力。

            
            HTML

    `

<meta name="viewport"

content="width=device-width, initial-scale=1.0">

Fancy Alert Box with Materialize
<link rel="stylesheet"

href=

"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

.my-alert {

border-radius: 10px;

/ Rounded corners /

}

body {

display: flex;

justify-content: center;

align-items: cente

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/41595.html
点赞
0.00 平均评分 (0% 分数) - 0