通过实例学习SweetAlert库的教程

356 阅读2分钟

SweetAlert2简介

Javascript有内置的警报机制,可以使用window.alert()方法调用。这只是显示基本的警报弹窗。这样做的缺点是外观和感觉不是很好。UI在移动和桌面设备上都是一样的。我们没有办法定制警报。警报通常是通过弹出的错误/警告信息来通知用户。我们没有选择自定义,以接受用户的输入,这种方法。

SweetAlert是一个弹出式库,用漂亮的响应和自定义机制取代警报机制。它是一个简单的库,没有依赖性。它只有一个样式表和Javascript文件。这将被用于记录被删除,一些操作成功,认证失败等情况。

优点

  • 定制化
  • 响应性
  • 易于学习
  • 可与NPM和jquery/javascript应用程序一起使用
  • 没有依赖性。只需要包含普通的Javascript和CSS文件

缺点

  • 学习新库--学习曲线很小
  • 需要添加新的库

安装和设置

要在你的项目中使用它,首先要安装这个库。Sweetalert提供了CDN库,以及npm/bower/yarn包,管理器。

在Jquery中使用CDN

这里下载库。提取内容或你可以使用CDN库
Sweetalert CDN 你可以直接在head标签的脚本标签中使用CDN。

使用npm管理器

  
npm install sweetalert2  
bower install sweetalert2  

一旦你安装了这个库,创建和使用这个库是非常简单的。

创建 sweetalert 对象
你可以使用 swal 对象来初始化它。我们将看到使用这个对象的不同用例。

 swal("Simple Message");  
 swal("Simplemessage!", "Title inserted hehre")  
 swal("Sucess message", "Text here", "success");  
  
swal({  
  title: "Are you sure want to delete it?",  
  text: "Delete record,",  
  type: "warning",  
  showCancelButton: true,  
  confirmButtonColor: '#DD6B55',  
  confirmButtonText: 'Yes, deleted!',  
  closeOnConfirm: false,  
  //closeOnCancel: false  
 },  
 function(){  
  swal("Deleted!", "Your record has been deleted!", "success");  
 });

我们将看到上述代码的下面的屏幕截图sweetalert example usage

警报类型

swal对象有一个描述警报信息类型的属性。

  • Success- 成功信息
  • 错误- 错误信息
  • Warning- 警告信息
  • info- 信息消息
  • 输入- 这允许接受用户的输入。
  
swal({  
  title: "Are you sure?",  
  text: "Delete record,",  
  type: "warning",  
 },  

SweetAlert例子

我们将看到以下经常使用的例子。

默认情况下,它显示一个固定宽度的弹出窗口。要改变弹出窗口的高度,你必须写一个自定义CSS,如下所示。你必须使用Swal对象的一个新的自定义类。

swal({  
     title: 'Test',  
     customClass: 'new-height'  
  });  
  
  .new-height {  height: 100vh;} 

如何在sweetalert中显示两个输入字段?

swal对象提供了一个HTML选项,我们可以在这里写输入框的HTML代码。你不能使用文本选项和HTML选项。如果同时使用,只有文本选项被考虑。

  
swal({  
  title: 'two inputs',  
  html:  
    '' +  
    '',  
  preConfirm: function () {  
    return new Promise(function (resolve) {  
      resolve([  
        $('#input1').val(),  
        $('#input2').val()  
      ])  
    })  
  },  
  onOpen: function () {  
    $('#input1').focus()  
  }  
}).then(function (result) {  
  swal(JSON.stringify(result))  
}).catch(swal.noop)  
});  

SweetAlert还提供了Angular、React和Vuejs库:

Angular库 - ngx-sweetalert2是npm包
React库 - sweetalert2-react-content是npm包
Vuejs库 - vue-sweetalert2是npm包