zoukankan      html  css  js  c++  java
  • 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文件。

    1 <link href="css/toast.style.css" rel="stylesheet">
    2 <script type="text/javascript" src="js/jquery.min.js"></script>
    3 <script type="text/javascript" src="js/toast.script.js"></script>

    初始化插件

    1 $.Toast()对象需要接收4个参数,分别为:标题、消息、类型和参数。
    2 $.Toast(title, message, type, options);    
    3 title:Toast的标题。
    4 message:Toast的消息体。
    5 type:Toast的类型。
    6 options:配置参数。

    默认的配置参数如下:

     1 {
     2     // append to body
     3     appendTo: "body",
     4     // is stackable?
     5     stack: false,
     6     // 'toast-top-left'
     7     // 'toast-top-right'
     8     // 'toast-top-center'
     9     // 'toast-bottom-left'
    10     // 'toast-bottom-right'
    11     // 'toast-bottom-center'
    12     position_class: "toast-bottom-right",
    13     // true = snackbar
    14     fullscreen: false,
    15     // width
    16      250,
    17     // space between toasts
    18     spacing: 20,
    19     // in milliseconds
    20     timeout: 4000,
    21     // has close button
    22     has_close_btn: true,
    23     // has icon
    24     has_icon: true,
    25     // is sticky
    26     sticky: false,
    27     // border radius in pixels
    28     border_radius: 6,
    29     // has progress bar
    30     has_progress: false,
    31     // RTL support
    32     rtl: false
    33 }
     1 {
     2     // append to body
     3     appendTo: "body",
     4     // is stackable?
     5     stack: false,
     6     // 'toast-top-left'
     7     // 'toast-top-right'
     8     // 'toast-top-center'
     9     // 'toast-bottom-left'
    10     // 'toast-bottom-right'
    11     // 'toast-bottom-center'
    12     position_class: "toast-bottom-right",
    13     // true = snackbar
    14     fullscreen: false,
    15     // width
    16      250,
    17     // space between toasts
    18     spacing: 20,
    19     // in milliseconds
    20     timeout: 4000,
    21     // has close button
    22     has_close_btn: true,
    23     // has icon
    24     has_icon: true,
    25     // is sticky
    26     sticky: false,
    27     // border radius in pixels
    28     border_radius: 6,
    29     // has progress bar
    30     has_progress: false,
    31     // RTL support
    32     rtl: false
    33 }

    源码:

    (function(){
        "use strict";
        $.Toast = function(title, message, type, options){
            var defaultOptions = {
                appendTo: "body",
                stack: false,
                position_class: "toast-bottom-right",
                fullscreen:false,
                 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">&times;</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();
            }        
        }
    })();

    实例:

     1 <!DOCTYPE html>
     2 <html lang="zh">
     3 <head>
     4 <meta charset="UTF-8">
     5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7 <title>Material Design风格jquery toast插件</title>
     8 <link href="css/toast.style.css" rel="stylesheet">
     9 </head>
    10 <body style="background-color:#252525">
    11 
    12 <a href="#" style="color:#fff" onclick="addToast()">点击显示Toast</a>
    13 
    14 <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script> 
    15 <script src="js/toast.script.js"></script> 
    16 <script>
    17             function addToast(){
    18                 $.Toast("test", "this is a test message.", "success", {
    19                     stack: true,
    20                     has_icon:true,
    21                     has_close_btn:true,
    22                     fullscreen:false,
    23                     timeout:3000,
    24                     sticky:false,
    25                     has_progress:true,
    26                     rtl:false,
    27                 });
    28             }
    29         </script>
    30 </body>
    31 </html>

    原文地址:http://www.jq22.com/jquery-info15566

  • 相关阅读:
    BZOJ 1951: [Sdoi2010]古代猪文( 数论 )
    BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
    BZOJ 1066: [SCOI2007]蜥蜴( 最大流 )
    BZOJ 1935: [Shoi2007]Tree 园丁的烦恼( 差分 + 离散化 + 树状数组 )
    BZOJ 1297: [SCOI2009]迷路( dp + 矩阵快速幂 )
    BZOJ 1406: [AHOI2007]密码箱( 数论 )
    BZOJ 1876: [SDOI2009]SuperGCD( 更相减损 + 高精度 )
    spfa2
    spfa
    bellmanford队列优化
  • 原文地址:https://www.cnblogs.com/joyco773/p/9125785.html
Copyright © 2011-2022 走看看