js实现动态消息提示框(模仿android系统中toast的效果)

为了提高用户提高,替代传统的alert提示框,可以采用js实现动态消息提示框(模仿android系统中toast的效果)

/**
 * 模仿android里面的Toast效果,主要是用于在不打断程序正常执行的情况下显示提示数据
 * @param config
 * @return
 */
function warn(msg,opt,left,top){
 if(opt){
 var obj = $("#"+opt);
 }
 new Toast({context:$('body'),message:msg},obj,left,top).show();
 
 }
var Toast = function(config,obj,left,top){
 this.context = config.context==null?$('body'):config.context;//上下文
 this.message = config.message;//显示内容
 this.time = config.time==null?5000:config.time;//持续时间
 this.left = config.left;//距容器左边的距离
 this.top = ($(document).height()/4)*3;//距容器上方的距离
 if(obj){ 
 this.left = obj.offset().left + left;
 this.top = obj.offset().top + top;
 }
 this.init();
}
var msgEntity;
Toast.prototype = {
 //初始化显示的位置内容等
 init : function(){
  $("#toastMessage").remove();
  //设置消息体
  var msgDIV = new Array();
  msgDIV.push('<div id="toastMessage">');
  msgDIV.push('<span>'+this.message+'</span>');
  msgDIV.push('</div>');
  msgEntity = $(msgDIV.join('')).appendTo(this.context);
  //设置消息样式
  var left = this.left == null ? this.context.width()/2-msgEntity.find('span').width()/2 : this.left;
  var top = this.top == null ? '20px' : this.top;
  msgEntity.css({position:'absolute',top:top,'z-index':'99',left:left,'background-color':'black',color:'white','font-size':'12px',padding:'5px',margin:'5px','border-radius':'4px','-moz-border-radius':'4px','-webkit-border-radius':'4px',opacity:'0.5','font-family':'微软雅黑'});
  //msgEntity.addClass(".toast");
  msgEntity.hide();
 },
 //显示动画
 show :function(){
  msgEntity.fadeIn(this.time/2);
  msgEntity.fadeOut(this.time/2);
 }
  
}调用方式:

 warn(msg,'','','');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值