jquery toast插件
插件描述:Toaster.js是一款Material Design风格jquery toast插件。Toaster.js提供5种主题,以及众多配置参数,用于显示toast类型的消息提示框。兼容性如下:

Toaster.js
Toaster.js是一款Material Design风格jquery toast插件。Toaster.js提供5种主题,以及众多配置参数,用于显示toast类型的消息提示框。
Toaster.js的特点有:
提供5种主题风格。
可以设置Toast自动消失。
可以显示关闭按钮。
可以显示关闭进度条。
支持从右向左显示。
使用方法
在页面中引入toast.style.css,jquery和toast.script.js文件。
<link href="css/toast.style.css" rel="stylesheet">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/toast.script.js"></script>
初始化插件
$.Toast()对象需要接收4个参数,分别为:标题、消息、类型和参数。
$.Toast(title, message, type, options);
title:Toast的标题。
message:Toast的消息体。
type:Toast的类型。
options:配置参数。
默认的配置参数如下:
 {
     // append to body
     appendTo: "body",
     // is stackable?
     stack: false,
     // 'toast-top-left'
     // 'toast-top-right'
     // 'toast-top-center'
     // 'toast-bottom-left'
     // 'toast-bottom-right'
     // 'toast-bottom-center'
     position_class: "toast-bottom-right",
     // true = snackbar
     fullscreen: false,
     // width
     width: 250,
     // space between toasts
     spacing: 20,
     // in milliseconds
     timeout: 4000,
     // has close button
     has_close_btn: true,
     // has icon
     has_icon: true,
     // is sticky
     sticky: false,
     // border radius in pixels
     border_radius: 6,
     // has progress bar
     has_progress: false,
     // RTL support
     rtl: false
 }
 {
     // append to body
     appendTo: "body",
     // is stackable?
     stack: false,
     // 'toast-top-left'
     // 'toast-top-right'
     // 'toast-top-center'
     // 'toast-bottom-left'
     // 'toast-bottom-right'
     // 'toast-bottom-center'
     position_class: "toast-bottom-right",
     // true = snackbar
     fullscreen: false,
     // width
     width: 250,
     // space between toasts
     spacing: 20,
     // in milliseconds
     timeout: 4000,
     // has close button
     has_close_btn: true,
     // has icon
     has_icon: true,
     // is sticky
     sticky: false,
     // border radius in pixels
     border_radius: 6,
     // has progress bar
     has_progress: false,
     // RTL support
     rtl: false
 }
源码:
(function(){
    "use strict";
    $.Toast = function(title, message, type, options){
        var defaultOptions = {
            appendTo: "body",
            stack: false,
            position_class: "toast-bottom-right",
            fullscreen:false,
            width: 250,
            spacing:20,
            timeout: 4000,
            has_close_btn:true,
            has_icon:true,
            sticky:false,
            border_radius:6,
            has_progress:false,
            rtl:false
        }
        var $element = null;
        var $options = $.extend(true, {}, defaultOptions, options);
        var spacing = $options.spacing;
        var css = {
            "position":($options.appendTo == "body") ? "fixed" : "absolute",
            "min-width":$options.width,
            "display":"none",
            "border-radius":$options.border_radius,
            "z-index":99999
        }
        $element = $('<div class="toast-item-wrapper ' + type + ' ' + $options.position_class + '"></div>');
        $('<p class="toast-title">' + title + '</p>').appendTo($element);
        $('<p class="toast-message">' + message + '</p>').appendTo($element);
        if($options.fullscreen){
            $element.addClass( "fullscreen" );
        }
        if($options.rtl){
            $element.addClass( "rtl" );
        }
        if($options.has_close_btn){
            $('<span class="toast-close">×</span>').appendTo($element);
            if( $options.rtl){
                css["padding-left"] = 20;
            } else {
                css["padding-right"] = 20;
            }
        }
        if($options.has_icon){
            $('<i class="toast-icon toast-icon-' + type + '"></i>').appendTo($element);
            if( $options.rtl){
                css["padding-right"] = 50;
            } else {
                css["padding-left"] = 50;
            }
        }
        if($options.has_progress && $options.timeout > 0){
            $('<div class="toast-progress"></div>').appendTo($element);
        }
        if($options.sticky){
            $options.spacing = 0;
            spacing = 0;
            switch($options.position_class){
                case "toast-top-left" : {
                    css["top"] = 0;
                    css["left"] = 0;
                    break;
                }
                case "toast-top-right" : {
                    css["top"] = 0;
                    css["left"] = 0;
                    break;
                }
                case "toast-top-center" : {
                    css["top"] = 0;
                    css["left"] = css["right"] = 0;
                    css["width"] = "100%";
                    break;
                }
                case "toast-bottom-left" : {
                    css["bottom"] = 0;
                    css["left"] = 0;
                    break;
                }
                case "toast-bottom-right" : {
                    css["bottom"] = 0;
                    css["right"] = 0;
                    break;
                }
                case "toast-bottom-center" : {
                    css["bottom"] = 0;
                    css["left"] = css["right"] = 0;
                    css["width"] = "100%";
                    break;
                }
                default : {
                    break;
                }
            }
        }
        if($options.stack){
            if($options.position_class.indexOf("toast-top") !== -1 ){
                $($options.appendTo).find('.toast-item-wrapper').each(function(){
                    css["top"] = parseInt($(this).css("top")) + this.offsetHeight + spacing;
                });
            } else if($options.position_class.indexOf("toast-bottom") !== -1 ){
                $($options.appendTo).find('.toast-item-wrapper').each(function(){
                    css["bottom"] = parseInt($(this).css("bottom")) + this.offsetHeight + spacing;
                });
            }
        }        
        $element.css(css);
        $element.appendTo($options.appendTo);
        if($element.fadeIn) {
            $element.fadeIn();
        }else {
            $alert.css({display: 'block', opacity: 1});
        }
        function removeToast(){
            $.Toast.remove( $element );
        }
        if($options.timeout > 0){
            setTimeout(removeToast, $options.timeout);
            if($options.has_progress){
                $(".toast-progress", $element).animate({"width":"100%"}, $options.timeout);
            }
        }        
        $(".toast-close", $element).click(removeToast)
        return $element;
    }
    $.Toast.remove = function( $element ){
        "use strict";
        if($element.fadeOut)
        {
            $element.fadeOut(function(){
                return $element.remove();
            });
        }
        else{
            $element.remove();
        }
    }
})();
实例:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Material Design风格jquery toast插件</title>
<link href="css/toast.style.css" rel="stylesheet">
</head>
<body style="background-color:#252525"> <a href="#" style="color:#fff" onclick="addToast()">点击显示Toast</a> <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script src="js/toast.script.js"></script>
<script>
function addToast(){
$.Toast("test", "this is a test message.", "success", {
stack: true,
has_icon:true,
has_close_btn:true,
fullscreen:false,
timeout:3000,
sticky:false,
has_progress:true,
rtl:false,
});
}
</script>
</body>
</html>
jquery toast插件的更多相关文章
- js插件---->jquery通知插件toastr的使用
		
toastr是一款非常棒的基于jquery库的非阻塞通知提示插件,toastr可设定四种通知模式:成功,出错,警告,提示,而提示窗口的位置,动画效果都可以通过能数来设置.toastr需要jquery的 ...
 - 深入学习jQuery自定义插件
		
原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数); $(‘#id’).myPlugin(o ...
 - [jQuery]jQuery DataTables插件自定义Ajax分页实现
		
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
 - 使用jQuery.form插件,实现完美的表单异步提交
		
传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...
 - 为jQuery写插件
		
很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider. 如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成sl ...
 - bootstrap-简洁实用的jQuery手风琴插件
		
前端 <html lang="zh"> <head> <meta charset="UTF-8"> <meta htt ...
 - 推荐15款响应式的 jQuery Lightbox 插件
		
利用现代 Web 技术,网络变得越来越轻巧与.模态框是突出展现内容的重要形式,能够让用户聚焦到重要的内容上去.在这个列表中,我们编制了15款响应式的 jQuery 灯箱库,这将有助于开发人员创建和设计 ...
 - Chocolat.js – 响应式的 jQuery Lightbox 插件
		
Chocolat.js 使您能够显示一个或多个图像在同一页面上.给用户展示一组图片缩略图,可以显示全页或块.Chocolat.js 可以很好地处理所有主要的浏览器.它在下面这些浏览器测试通过:IE7+ ...
 - 让网站动起来!12款优秀的 jQuery 动画插件推荐
		
如今,大多数设计师和开发人员被要客户要求开发动态的网站.创造视觉震撼和醒目的动态网站是艰巨的任务,因为它需要大量的努力和创造力.在网络上有大量的工具和插件可用于创建网站动画.许多开发人员正在使用 HT ...
 
随机推荐
- *445. Add Two Numbers II
			
1. 原始题目 You are given two non-empty linked lists representing two non-negative integers. The most si ...
 - 向量的L2范数求导
			
回归中最为基础的方法, 最小二乘法. \[ \begin{align*} J_{LS}{(\theta)} &= \frac { 1 }{ 2 } { \left\| A\vec { x } ...
 - Git学习笔记07-删除文件
			
在Git中,删除也是一种修改.先新建一个文件,添加并提交.然后删除下看看. 一般删除直接从工作区把文件删了,或者使用rm命令  这是使用git status查看状态,会告诉我们删了哪个文件  这个 ...
 - aix安装nmon
			
aix5310以上都系统自带了nmon,其他低版本需要手动安装 软件包下载地址https://www.ibm.com/developerworks/community/wikis/home?lang= ...
 - 题解-PKUWC2018 随机算法
			
Problem loj2540 题意简述:给定\(n\)个点的无向图,给定求最大独立集的近似算法:随机排列\(1\cdots n\),按照该排列顺序贪心构造最大独立集(即对每个点能加入独立集就加),求 ...
 - 关于nginx服务器上传限制
			
nginx的上传参数问题,需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中无法log到访问的.修改了php.ini文件如下:参数 设置 说明fi ...
 - 在TOMCAT下配置工程的默认访问设置(转)
			
对工程的部署一般是将工程的压缩文件放在tomcat安装目录的webapps下,访问时通过键入:http://localhost:8080/xx(假定为本机访问,xx是部署时的应用工程的访问名字). 而 ...
 - WebApi中使用session
			
webapi默认是不支持session的,要通过一些手动配置来开启Session功能 在Global.asax里添加: 导入命名空间: using System.Web.SessionState; p ...
 - 粘包-socketserver实现并发
 - awk-for循环简单用法
			
文本: [root@VM_0_84_centos ~]# cat sshd.txt 1 2 3 4 5 6 7 8 9 循环打印上述文本 for 循环的固定格式 i=1设置i的初始变量 i< ...