`

jQuery插件-toastmessage

阅读更多
最近项目需要用到toast的信息提示效果,找了一个jquery写的不错的插件,toastmessage
http://akquinet.github.com/jquery-toastmessage-plugin/

本人根据项目需求做了部分修改,对浏览器兼容也做了hack
js
(function($)
{
	var settings = {
				inEffect: 			{opacity: 'show'},	// in effect
				inEffectDuration: 	600,				// in effect duration in miliseconds
				stayTime: 			3000,				// time in miliseconds before the item has to disappear
				text: 				'',					// content of the item. Might be a string or a jQuery object. Be aware that any jQuery object which is acting as a message will be deleted when the toast is fading away.
				sticky: 			false,				// should the toast item sticky or not?
				type: 				'notice', 			// notice, warning, error, success
                position:           'top-center',        // top-left, top-center, top-right, middle-left, middle-center, middle-right ... Position of the toast container holding different toast. Position can be set only once at the very first call, changing the position after the first call does nothing
                closeText:          '',                 // text which will be shown as close button, set to '' when you want to introduce an image via css
                close:              null                // callback function when the toastmessage is closed
            };

    var methods = {
        init : function(options)
		{
			if (options) {
                $.extend( settings, options );
            }
		},

        showToast : function(options)
		{
			var localSettings = {};
            $.extend(localSettings, settings, options);

			// declare variables
            var toastWrapAll, toastItemOuter, toastItemInner, toastItemClose, toastItemImage;
            
			toastWrapAll	= (!$('.toast-container').length) ? $('<div></div>').addClass('toast-container').addClass('toast-position-' + localSettings.position).appendTo('body') : $('.toast-container');
			toastItemOuter	= $('<div></div>').addClass('toast-item-wrapper');
			toastItemInner	= $('<div></div>').hide().addClass('toast-item toast-type-' + localSettings.type).appendTo(toastWrapAll).html($('<p>').append (localSettings.text)).animate(localSettings.inEffect, localSettings.inEffectDuration).wrap(toastItemOuter);
			//toastItemClose	= $('<div></div>').addClass('toast-item-close').prependTo(toastItemInner).html(localSettings.closeText).click(function() { $().toastmessage('removeToast',toastItemInner, localSettings) });
			toastItemImage  = $('<div></div>').addClass('toast-item-image').addClass('toast-item-image-' + localSettings.type).prependTo(toastItemInner);
			//居中设置
			var iconWidth = $(".toast-item-image").width();
			var textWidth = $(".toast-item p").width();
			$(".toast-container").width(iconWidth+textWidth+40);
			$(".toast-position-top-center").css("margin-left",-$(".toast-container").width()/2);
//            if(navigator.userAgent.match(/MSIE 6/i))
//			{
//		    	toastWrapAll.css({top: document.documentElement.scrollTop});
//		    }

			if(!localSettings.sticky)
			{
				setTimeout(function()
				{
					$().toastmessage('removeToast', toastItemInner, localSettings);
				},
				localSettings.stayTime);
			}
            return toastItemInner;
		},

        showNoticeToast : function (message)
        {
            var options = {text : message, type : 'notice'};
			$(".toast-item-wrapper").remove();
            return $().toastmessage('showToast', options);
        },

        showSuccessToast : function (message)
        {
            var options = {text : message, type : 'success',stayTime : 2000};
			$(".toast-item-wrapper").remove();
            return $().toastmessage('showToast', options);
        },

        showErrorToast : function (message)
        {
            var options = {text : message, type : 'error'};
			$(".toast-item-wrapper").remove();
            return $().toastmessage('showToast', options);
        },

        showWarningToast : function (message)
        {
            var options = {text : message, type : 'warning'};
			$(".toast-item-wrapper").remove();
            return $().toastmessage('showToast', options);
        },
		
        showLoadingToast : function (message)
        {
            var options = {inEffectDuration : 0, text : message, type : 'loading', sticky : true};
            $(".toast-item-wrapper").remove();
            return $().toastmessage('showToast', options);
        },

		removeToast: function(obj, options)
		{
			obj.animate({opacity: '0'}, 600, function()
			{
				obj.parent().animate({height: '0px'}, 300, function()
				{
					obj.parent().remove();
				});
			});
            // callback
            if (options && options.close !== null)
            {
                options.close();
            }
		}
	};

    $.fn.toastmessage = function( method ) {

        // Method calling logic
        if ( methods[method] ) {
          return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
          return methods.init.apply( this, arguments );
        } else {
          $.error( 'Method ' +  method + ' does not exist on jQuery.toastmessage' );
        }
    };

})(jQuery);


css:
.toast-container {
    z-index: 9999;
}
* html .toast-container {
    position: absolute;
}

.toast-item {
    height: 46px;
    background: #DFF4FF;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
     opacity: 0.8;
    /*
     color: #eee;
     padding-top: 20px;
     padding-bottom: 20px;
     padding-left: 6px;
     padding-right: 6px;
     font-family: lucida Grande;
     font-size: 14px;
     */
    border: 2px solid white;
    display: block;
    position: relative;
    margin: 0 0 12px 0;
}

.toast-item p {
    margin-right: 15px;
    text-align: left;
    margin-top: 14px\0;
    *margin-top: 14px;
    float: right;
    display: inline;
}

.toast-item-close {
    height: 0px;
    line-height: 0px;
    /*
     background: url(img/close.gif);
     width: 22px;
     height: 22px;
     position: absolute;
     top: 7px;
     right: 7px;
     */
}

.toast-item-image {
    width: 24px;
    height: 24px;
    margin-left: 15px;
    margin-top: 10px;
    margin-right: 4px;
    float: left;
    display: inline;
}

.toast-item-image-notice {
    background: url(img/formaticon.png);
}

.toast-item-image-success {
    background: url(img/formaticon.png) -2px -28px;
}

.toast-item-image-warning {
    background: url(img/formaticon.png) -2px -53px;
}

.toast-item-image-error {
    background: url(img/formaticon.png) -2px -3px;
}

.toast-item-image-loading {
    background: url(img/loading.gif);
}

/**
 * toast types
 *
 * pattern: toast-type-[value]
 * where 'value' is the real value of the plugin option 'type'
 *
 */
.toast-type-notice {
    color: black;
}

.toast-type-success {
    color: black;
}

.toast-type-warning {
    color: black;
    /*
     border-color: #FCBD57;
     */
}

.toast-type-error {
    color: black;
    /*
     border-color: #B32B2B;
     */
}

.toast-type-loading {
    color: black;
}

/**
 * positions
 *
 * pattern: toast-position-[value]
 * where 'value' is the real value of the plugin option 'position'
 *
 */
.toast-position-top-left {
    position: fixed;
    left: 20px;
    top: 20px;
}

.toast-position-top-center {
    position: fixed;
    top: 220px;
    left: 50%;
}

.toast-position-top-right {
    position: fixed;
    top: 20px;
    right: 20px;
}

.toast-position-middle-left {
    position: fixed;
    left: 20px;
    top: 50%;
    margin-top: -40px;
}

.toast-position-middle-center {
    position: absolute;
    left: 50%;
    margin-left: -140px;
    margin-top: -40px;
    top: 50%;
}

.toast-position-middle-right {
    position: fixed;
    right: 20px;
    margin-left: -140px;
    margin-top: -40px;
    top: 50%;
}
分享到:
评论

相关推荐

    jQuery插件-实现HTML5微信红包抽奖红包雨特效动画js效果.rar

    jQuery插件-实现HTML5微信红包抽奖红包雨特效动画js效果.rar jQuery插件-实现HTML5微信红包抽奖红包雨特效动画js效果.rar jQuery插件-实现HTML5微信红包抽奖红包雨特效动画js效果.rar jQuery插件-实现HTML5微信红包...

    jQuery插件---mcdropdow.(仿下拉框多层次)

    jQuery插件---mcdropdow.(仿下拉框多层次)jQuery插件---mcdropdow.(仿下拉框多层次)jQuery插件---mcdropdow.(仿下拉框多层次)jQuery插件---mcdropdow.(仿下拉框多层次)jQuery插件---mcdropdow.(仿下拉框多层次)

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    jQuery插件--滑动条

    2. `jquery-1.2.6.js` - 这是jQuery库的一个早期版本(1.2.6),用于处理页面上的DOM操作和事件监听等。 3. `jquery.jslider.js` - 这是一个jQuery插件文件,专门用于实现滑动条功能。 在使用jQuery插件创建滑动条...

    Jquery插件-分享插件

    Jquery插件-分享插件

    jQuery插件--星级打分

    jQuery插件--星级打分,供大家一起共同分享学习。

    插件jquery-ui-timepicker-addon.js

    jquery插件jquery-ui-timepicker-addon.j

    jQuery版本迁移辅助插件jquery-migrate-1.2.1.min.js

    jQuery版本迁移辅助插件,如果您使用的低版本jQuery改为高版本后出现错误,可以试试这个插件。用来检测和恢复在jQuery1.9版本中已删除或已过时的API。jquery-migrate-1.2.1.js,jquery-migrate-1.2.1.min.js

    jquery插件-文章分页插件

    在这个场景中,"jquery插件-文章分页插件"是一个专门为jQuery设计的轻量级组件,用于实现文章或内容的分页功能。 首先,我们来详细了解一下jQuery插件的基本结构和工作原理。jQuery插件通常是一个函数,该函数接收...

    jquery-migrate-1.2.1.js文件

    `jquery-migrate-1.2.1.min.js` 是这个插件的压缩版本,用于生产环境,它具有更小的文件大小,减少了页面加载时间,但同样提供向后兼容性支持。 **jqPrint插件与jQuery Migrate的结合** `jqPrint` 是一个jQuery...

    Jquery插件-弹窗

    而"Jquery插件-弹窗"则是利用jQuery来实现的一种常见功能,即在网页上创建交互式的弹出窗口。这个插件通常用于显示通知、警告、确认对话框或者承载更复杂的内容,如图片画廊、表单等。 1. jQuery插件的基本概念: ...

    帮助你生成组织结构图的jQuery插件 - jOrgChart

    帮助你生成组织结构图的jQuery插件 - jOrgChart 大家可能看到过使用javascript类库JavaScript InfoVis Toolkit实现的特效组织结构图,这里我们使用jQuery插件-jOrgchart也同样可以实现一个组织结构图。 主要特性: ...

    jquery插件-添加不包邮城市

    jquery插件-添加不包邮城市 $(function () { //------生成地区 GetRegionPlug(); //------选择后确定按钮 $(".btntest1").click(function () { var areas = GetChecked().join(",");//已选择的城市名 $("#...

    jQuery摄像头插件jquery-webcam-plugin

    **jQuery摄像头插件jquery-webcam-plugin** 在网页开发中,集成摄像头功能可以帮助用户实时捕捉图像,广泛应用于在线证件照上传、视频聊天、虚拟试衣间等场景。`jQuery webcam plugin`是一个优秀的JavaScript库,它...

    JQUERY插件-蒙版遮罩效果-toggleLoading

    本文将深入探讨“JQUERY插件-蒙版遮罩效果-toggleLoading”这一主题,它提供了在网页元素上添加遮罩效果的能力,以增加用户交互体验。 首先,让我们了解什么是蒙版和遮罩效果。在网页设计中,蒙版通常指的是用于...

    JQuery MX-9

    **jQuery MX-9 插件详解** jQuery MX-9 是一款专为网页开发设计的插件,它基于广泛使用的JavaScript库jQuery,旨在提升在Dreamweaver中的开发效率和功能体验。这款插件针对Dreamweaver进行了优化,为开发者提供了一...

    我的第一个jQuery插件 -- 圆角DIV

    标题 "我的第一个jQuery插件 -- 圆角DIV" 指涉的是一个关于创建自定义jQuery插件的教程,该插件主要用于实现HTML元素(尤其是DIV)的圆角效果。在早期的Web开发中,CSS2无法直接创建圆角,所以开发者会利用...

    jquery插件--侧边栏浮动插件,固定在顶部

    标题中的“jquery插件--侧边栏浮动插件,固定在顶部”指的是一个基于jQuery的JavaScript插件,其主要功能是实现侧边栏在页面滚动时始终保持在屏幕顶部的浮动效果。这种效果常用于网站的导航菜单或者侧边工具栏,以...

    jquery-migrate

    例如jQuery版本用的是1.x,计划升级到3.x,就可以在页面删除1.x版本,换成3.x版本,如果有脚本错误,就引入jquery-migrate插件用于兼容低版本,同时也显示低版本方法替换成新版本方法的方案。 jQuery migrate(转移...

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定版本,即1.8.16。这个版本在当时是一个广泛使用的稳定版本,提供了丰富的功能和组件。 ...

Global site tag (gtag.js) - Google Analytics