前端总是会有很多信息提示的时候,最简单的可以用javascript自带的alert,confirm等。这些虽然和js的配合很好,但是很丑。

  bootstrap给我们提供了一些不同的方案比如modal的模态对话框,popover,tooltip等比较好看的提示框。这些虽然好看一些但是需要和页面的DOM元素有很强的耦合性,而且编写起来比较麻烦。

  好在一些第三方的插件可以兼顾简洁和美观,下面简单说几个。

  ■  toastr 轻型信息提示框

  【https://www.cnblogs.com/h--d/p/5732743.html】

  效果大概是这个样子:

  弹出的信息有标题/内容,可以添加关闭按钮,同时可以在指定的几个位置生成,并且整个消息是半透明的,过一段时间后会自动关闭,伴随淡入淡出效果。总体而言十分好看。另外toastr的一大特点就是与alert等不同,它是不阻塞页面的。

  首先下载组件,官方网站在【http://codeseven.github.io/toastr/】,注意不用下载右侧的zip或者tar包,而是找到左边对应的min.js和min.css的连接下载即可。

  然后还是老方法进行引入,完成之后在我们自己的js中只要简单的一句就可以构造出相应的提示:

// 提示消息
toastr.info('content','title'); // 成功
toastr.success('content','title'); // 警告
toastr.warning('content','title'); // 错误
toastr.error('content','title'); // 优雅关闭所有消息
toastr.clear(); // 瞬间移除所有消息
toastr.remove();

  除了简单的调用之外,还可以进行参数(初始化参数)的设置。可以设置的初始化参数主要有:

  positionClass  分成toast-(bottom|top)-(left|right|center)的组合,指出了消息可以出现的几个位置

  closeButton  可选true或false,决定在每个消息右上角是否显示关闭按钮

  showDuration,hideDuration  单位毫秒,设置淡入/淡出动画持续时间,默认值为300和1000

  timeout  单位毫秒,显示持续时间

  showMethod,hideMethod  默认是fadeIn和fadeOut,用于设置消息出现和消失的动画的

  progressBar  设置true或false,在消息窗口下面添加一个进度条,进度条走完时消息自动消失

  

  设置的方法如下:

  toastr.options = {option: value, ...}

  也可以单项单项进行设置如:

  toastr.options.positionClass = 'xxxxx';

  除此之外,对于每次调用也可以添加第三个参数(一个object)用来设置该消息的个性化初始化参数。

  需要注意的是设置并不像我们想象得那么灵活,这主要和渲染出来的消息的结构有关。渲染消息时会首先得到一个div,这个div会有一些初始化参数的特征,比如positionClass就是这个div的一个class。然后把当前渲染出的消息加入到这个div中。当这个div中还有消息没消失(手动关闭或者超时自动消失),那么div始终存在,新要被渲染出来的消息,不论个性的初始化参数或者新设置的初始化参数如何,都会被加入到这个div中,也就是说沿用了创建这个div的那个消息的初始化参数。当这个div中所有消息都消失了,那么再创建消息时就会创建一个新div,自然就会加载那个消息的初始化参数了。

  toastr就是这样,应用起来很方便的一个小插件。

  ■  sweetalert  警告框的综合解决方案

  alert确实不好看,但是用modal等bootstrap自带工具来实现alert的功能又比较烦(比如在页面里要事先埋上一个复杂的div),sweetalert这个组件则能很方便的像alert那样,让我们在js中简单调用一行代码就实现弹出提示框了。

  引入sweetalert。可以将【https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js】和【https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.css】内容复制到本地形成本地的静态文件,也可以通过CDN的方式直接引用。

  完成后在js中就可以调用一些方法来弹出提示框了,比如单纯的信息展示:

  swal('Hello, World');  简单弹出一个提示框,自带一个OK按钮用于关闭提示框

  swal('Title','Content');  带有标题的简单提示框,标题只是一个大一点字号加粗过后放在内容上方,没有<hr>之类的东西

  swal('Succ_Title','Succ_Content','success');  swal的另一个很不错的自带功能就是配合bootstrap提供了从info到error各个级别的提示框并且自带了动态的图标,很好看。比如这个是成功的提示框,把第三个参数也可以换成info, warning ,error等

  内容,标题和类别这三个参数可以这样匿名按顺序写,如果要指明是哪个参数可以像其他很多组件那样传递一个object作为初始化参数来写,比如:

  swal({title: 'Title', text: 'Content', type: 'success'})  *需注意,似乎不能不设置title只设置text。当一定不要有标题title的时候可以设置为空值。

  ●  确认提示框

  在实际开发过程中,经常会遇到跳出一个提示框请求确认,比如删除一个什么东西的时候。之前很黑洞的一点就是如果用confirm虽然编程方便但是很丑,如果用modal或者popover,那么如何把第一次点击时选取的信息(比如要删除对象的ID,肯定是在第一次点击时就决定了)传递给第二次确认点击就是一个问题。而swal已经为我们包装出了这样一个功能:

  

$('.del-row').click(function(event){
swal({
title: '警告',
text: '确认删除ID为' + $(this).find('.id-td').text() + '的行吗?';
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#xxxxxx',
confirmButtonText: '确认删除',
closeOnConfirm: false,
showLoaderOnConfirm: true
}, function(){
// 发出ajax请求要求删除
$.ajax({
url: 'xxx',
type: 'delete',
dataType: 'json',
data: {xxx},
success: function(data){
swal({
text: '删除成功',
type: 'success'
});
},
error: function(xml,err,excep){
swal({
text: '发生错误' + xml.status,
type: 'error'
});
}
}) })
})

  可以看到,在初始化参数的object后面我们添加了第二个参数是一个函数对象。当点击提示框的confirmButton的时候,或者timer时间到提示框自动关闭的时候,会执行这个函数。

  另外还有一个小点,就是swal之间的覆盖。这里的swal设置了closeOnConfirm为false,以为着点击confirmButton之后这个提示框不会消失,而接下来ajax请求完了之后又新swal出一个提示框,此时可以看到新的提示框会覆盖掉原来的提示框,点击新提示框中的OK,就会把提示框关掉,没有提示框了。同理,如果在一个连续的语境中多次调用swal,最终页面上显示出来的swal以最后一次调用时设定的样子为准。

  上面showCancelButton是true,这意味着我们可以点击取消按钮进行简单的提示框关闭。如果在取消的时候也想执行一些代码的话可以这么干,把第二个参数的函数改造成带有一个参数:

swal({xxxx},funcion(isConfirm){
if (isConfirm){
// 点击了确认之后干的事
}
else{
// 点击取消之后干的事
}
})

  showLoaderOnConfirm则是一个对ajax适配很好的参数,当设置为true后,点击确认之后取消和确认按钮会被禁用以防止用户做出进一步误操作,然后确认按钮会展示转菊花界面。

  ●  其他一些样式和参数说明

  imageUrl  指出一个url指向一张图片,可以在提示框中展示一个图片。需要在注意的是,如果指定type的话,type带有的那个图标也是会被展示出来的,在imageUrl指向图片的上方。

  html  当设置为true时,以html的方式解析text中的内容

  timer  设置一个自动关闭时间,单位是毫秒

  animation  默认值是pop,可以设置为slide-from-top和slide-from-bottom,另外也可以设置为false以禁用动画

  更多的参数可以参考文档【http://mishengqiang.com/sweetalert/】

  ●  输入提示框

  类似于prompt,看下这个实例就知道了:

swal({
title: '请输入',
text: '输入内容:',
type: 'input', //type改为input
inputType: 'text' // password等也可
showCancelButton: true,
closeOnConfirm: false,
animation: 'slide-from-top',
inputPlaceholder: '输入的内容写在这里...',
},function(inputValue){
if (inputValue == false){ return false; }
if (inputValue === ''){ swal('你需要输入一些内容'); return false;}
swal({
title: '' //不能没有标题,可以设置空值
text: '收到输入内容:' + inputValue,
type: 'success'
});
});

  

●  方法

  swal还提供了几个方法,比如setDefaults,当你有很多swal要设置同一个属性时可以用这个方法比如

  swal.setDefaults({confirmButtonColor: '#xxxxxx'})  这样没调用一次swal得到的弹出框的确认按钮就都会是指定颜色了

  swal.close()  手动关闭弹窗

  swal.showInputError(',,,')  type为input时,当得到的值不符合预期可以给出错误信息

  swal.enableButton/disableButton()  手动启用、禁用按钮

【Bootstrap】 一些提示信息插件的更多相关文章

  1. bootstrap的popover插件在focus模式时在Safari浏览器无法使用的bug解决方案

    前言 最近在使用bootstrap的popover插件,效果如下: popover插件的focus模式时表现为当点击按钮时弹出浮动层,在点击浮动层外的任何一处,都隐藏浮动层. 但是在mac下的Safa ...

  2. bootstrap的日期插件datetimepicker有问题

    bootstrap的日期插件datetimepicker在chrome中会出现掉下来的现象,而且一直没找到原因,下载最新版的插件直接在各个浏览器中都会掉下来, 问题一直解决不了,转而换其他插件 htt ...

  3. 30个非常流行的提示信息插件(jQuery Tooltip Plugin)

    在网站的设计中,提示信息是非常细微的功能,但是起着非常重要的作用.如果你的网站中提示信息做的比较好,会给浏览者留下非常深刻的印象,同时也会起到非常好的网站宣传效果,下面介绍了30个比较流行提示信息插件 ...

  4. qTip2 精致的jQuery提示信息插件

    qTip2 精致的jQuery提示信息插件    出处:http://www.cnblogs.com/lwme/archive/2012/02/16/qtip2-jquery-plugin.html ...

  5. bootstrap学习之三—插件

    一.模态框(modal)插件 1)为要触发模态框的组件添加data-toggle="modal",data-target="对应ID" 2)使用一个div实现m ...

  6. Bootstrap transition.js 插件

    Bootstrap transition.js 插件详解   Bootstrap 自带的 JavaScript 插件的动画效果几乎都是使用 CSS 过渡实现的,而其中的 transition.js 就 ...

  7. Bootstrap Paginator分页插件

    Bootstrap Paginator分页插件使用示例 最近做的asp.netMVC项目中需要对数据列表进行分类,这个本来就是基于bootstrap开发的后台,因此也就想着bootstrap是否有分页 ...

  8. Bootstrap Paginator分页插件+ajax 实现动态无刷新分页

    之前做分页想过做淘宝的那个,但是因为是后台要求不高,就Bootstrap Paginator插件感觉还蛮容易上手,所以就选了它. Bootstrap Paginator分页插件下载地址: Downlo ...

  9. 使用bootstrap的JS插件实现模态框效果

    在上一篇文章中,我们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,我们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提高效率.一个好的轮子,不仅 ...

  10. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件

    导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...

随机推荐

  1. json_encode处理json数据中文乱码

    今天使用json_encode 把一个数组转换成json数据,echo处理的时候,显示为null.去查了php手册. 该函数只能接受 UTF-8 编码的数据. 在网上搜了下,找到了解决方法. < ...

  2. Java之Iterator

    Java之Iterator 1.实例源码 /** * @Title:IteratorJava.java * @Package:com.you.model * @Description:Iterator ...

  3. zTree实现获取当前选中的第一个节点在同级节点中的序号

    zTree实现获取当前选中的第一个节点在同级节点中的序号 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTr ...

  4. 芝麻HTTP:Python爬虫实战之抓取爱问知识人问题并保存至数据库

    本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表达式的简 ...

  5. 安装使用pyclone进行克隆演化推断

    pyclone介绍   可以根据多个样品突变的allele frequency 和 copy number,推断出有该突变的细胞克隆所占的比例(cellular prevalence)在不同样品间的变 ...

  6. 在ASP.NET 中检测手机浏览器(转)

    引言 之前做的项目中需要在浏览器查看PDF文件.在电脑端没有问题,但是手机端网页打开失败. 后来使用了pdf.js,个人认为pdf.js的页面不够清爽,就希望网站能自动检测登录设备,电脑端保持原样,手 ...

  7. 第二篇:操纵MySQL数据库(2) - 基于ORM思想的SQLAlchemy库

    前言 本文讲解在Python语言中使用SQLAlchemy库操纵MySQL数据库的方法. 由于具体内容涉及较多,本文仅以插入及展示数据为例,更多内容请查阅有关文档. ORM ORM也即对象 - 关系映 ...

  8. .NET Core使用skiasharp文字头像生成方案(基于docker发布)

    一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸 ...

  9. PHP 获取访问来源

    原文:http://www.upwqy.com/details/16.html $_SERVER['HTTP_REFERER'] 通过这个全局变量可以获取访问的链接是来源于哪里 比如说从博客园 htt ...

  10. ffplay常用命令

    一.ffplay 常用参数 ffplay不仅仅是播放器,同时也是测试ffmpeg的codec引擎,format引擎,以及filter引擎的工具,并且也可以做可视化的媒体参数分析,可以通过ffplay ...