基于jquery ui的alert,confirm方案(支持换肤)
实现功能:
1.修改标题样式。把jqueryui的标题样式放上去。支持换肤。
2.修改按钮样式,换成jqueryui的button按钮样式。
3.将模式化窗口的背景换成了jqueryui的模式化背景。
代码:
//首先要引入jquery,以及ui的包和皮肤的样式如:
<scriptsrc="../js/ui/jquery-1.11.0.min.js"></script>
<scriptsrc="../js/ui/jquery-migrate-1.1.0.min.js"></script>
<scriptsrc="../js/ui/minified/jquery.ui.core.min.js"></script>
<scriptsrc="../js/ui/minified/jquery.ui.widget.min.js"></script>
<scriptsrc="../js/ui/minified/jquery.ui.mouse.min.js"></script>
<scriptsrc="../js/ui/minified/jquery.ui.button.min.js"></script>
<scriptsrc="../js/ui/minified/jquery.ui.draggable.min.js"></script>
<linkrel="stylesheet"type="text/css"href="../js/ui/themes/humanity/jquery-ui.css"></link>
(function($){
$.alerts={
//Thesepropertiescanberead/writtenbyaccessing$.alerts.propertyNamefromyourscriptsatanytime
verticalOffset:-75,//verticaloffsetofthedialogfromcenterscreen,inpixels
horizontalOffset:0,//horizontaloffsetofthedialogfromcenterscreen,inpixels/
repositionOnResize:true,//re-centersthedialogonwindowresize
overlayOpacity:.01,//transparencylevelofoverlay
overlayColor:'#FFF',//basecolorofoverlay
draggable:true,//makethedialogsdraggable(requiresUIDraggablesplugin)
okButton:' 确认 ',//textfortheOKbutton
cancelButton:' 取消 ',//textfortheCancelbutton
dialogClass:null,//ifspecified,thisclasswillbeappliedtoalldialogs
//Publicmethods
alert:function(message,title,callback){
if(title==null)title='Alert';
$.alerts._show(title,message,null,'alert',function(result){
if(callback)callback(result);
});
},
confirm:function(message,title,callback){
if(title==null)title='Confirm';
$.alerts._show(title,message,null,'confirm',function(result){
if(callback)callback(result);
});
},
prompt:function(message,value,title,callback){
if(title==null)title='Prompt';
$.alerts._show(title,message,value,'prompt',function(result){
if(callback)callback(result);
});
},
//Privatemethods
_show:function(title,msg,value,type,callback){
$.alerts._hide();
$.alerts._overlay('show');
$("BODY").append(
'<divid="popup_container"style="width:300px;height:150px;">'+
'<h2id="popup_title"style="margin:0;padding:0;"class="ui-dialog-titlebarui-widget-headerui-corner-allui-helper-clearfix"></h2>'+
'<divid="popup_content">'+
'<divid="popup_message"></div>'+
'</div>'+
'</div>');
if($.alerts.dialogClass)$("#popup_container").addClass($.alerts.dialogClass);
//IE6Fix
//varpos=($.browser.msie&&parseInt($.browser.version)<=6)?'absolute':'fixed';
varpos=('undefined'==typeof(document.body.style.maxHeight))?'absolute':'fixed';
$("#popup_container").css({
position:pos,
zIndex:99999,
padding:0,
margin:0
});
$("#popup_title").text(title);
$("#popup_content").addClass(type);
$("#popup_message").text(msg);
$("#popup_message").html($("#popup_message").text().replace(/\n/g,'<br/>'));
$("#popup_container").css({
minWidth:$("#popup_container").outerWidth(),
maxWidth:$("#popup_container").outerWidth()
});
$.alerts._reposition();
$.alerts._maintainPosition(true);
switch(type){
case'alert':
$("#popup_message").after('<divid="popup_panel"><inputtype="button"onmouseover="$(this).addClass(\'ui-state-hover\')"onmouseout="$(this).removeClass(\'ui-state-hover\')"class="ui-buttonui-widgetui-state-defaultui-corner-allui-button-text-only"value="'+$.alerts.okButton+'"id="popup_ok"/></div>');
$("#popup_ok").click(function(){
$.alerts._hide();
callback(true);
});
$("#popup_ok").focus().keypress(function(e){
if(e.keyCode==13||e.keyCode==27)$("#popup_ok").trigger('click');
});
break;
case'confirm':
$("#popup_message").after('<divid="popup_panel"><inputtype="button"onmouseover="$(this).addClass(\'ui-state-hover\')"onmouseout="$(this).removeClass(\'ui-state-hover\')"class="ui-buttonui-widgetui-state-defaultui-corner-allui-button-text-only"value="'+$.alerts.okButton+'"id="popup_ok"/><inputtype="button"onmouseover="$(this).addClass(\'ui-state-hover\')"onmouseout="$(this).removeClass(\'ui-state-hover\')"class="ui-buttonui-widgetui-state-defaultui-corner-allui-button-text-only"value="'+$.alerts.cancelButton+'"id="popup_cancel"/></div>');
$("#popup_ok").click(function(){
$.alerts._hide();
if(callback)callback(true);
});
$("#popup_cancel").click(function(){
$.alerts._hide();
if(callback)callback(false);
});
$("#popup_ok").focus();
$("#popup_ok,#popup_cancel").keypress(function(e){
if(e.keyCode==13)$("#popup_ok").trigger('click');
if(e.keyCode==27)$("#popup_cancel").trigger('click');
});
break;
case'prompt':
$("#popup_message").append('<br/><inputtype="text"size="30"id="popup_prompt"/>').after('<divid="popup_panel"><inputtype="button"onmouseover="$(this).addClass(\'ui-state-hover\')"onmouseout="$(this).removeClass(\'ui-state-hover\')"class="ui-buttonui-widgetui-state-defaultui-corner-allui-button-text-only"value="'+$.alerts.okButton+'"id="popup_ok"/><inputtype="button"onmouseover="$(this).addClass(\'ui-state-hover\')"onmouseout="$(this).removeClass(\'ui-state-hover\')"class="ui-buttonui-widgetui-state-defaultui-corner-allui-button-text-only"value="'+$.alerts.cancelButton+'"id="popup_cancel"/></div>');
$("#popup_prompt").width($("#popup_message").width());
$("#popup_ok").click(function(){
varval=$("#popup_prompt").val();
$.alerts._hide();
if(callback)callback(val);
});
$("#popup_cancel").click(function(){
$.alerts._hide();
if(callback)callback(null);
});
$("#popup_prompt,#popup_ok,#popup_cancel").keypress(function(e){
if(e.keyCode==13)$("#popup_ok").trigger('click');
if(e.keyCode==27)$("#popup_cancel").trigger('click');
});
if(value)$("#popup_prompt").val(value);
$("#popup_prompt").focus().select();
break;
}
//Makedraggable
if($.alerts.draggable){
try{
$("#popup_container").draggable({handle:$("#popup_title")});
$("#popup_title").css({cursor:'move'});
}catch(e){/*requiresjQueryUIdraggables*/}
}
},
_hide:function(){
$("#popup_container").remove();
$.alerts._overlay('hide');
$.alerts._maintainPosition(false);
},
_overlay:function(status){
switch(status){
case'show':
$.alerts._overlay('hide');
$("BODY").append('<divclass="ui-widget-overlay"id="popup_overlay"></div>');
break;
case'hide':
$("#popup_overlay").remove();
break;
}
},
_reposition:function(){
vartop=(($(window).height()/2)-($("#popup_container").outerHeight()/2))+$.alerts.verticalOffset;
varleft=(($(window).width()/2)-($("#popup_container").outerWidth()/2))+$.alerts.horizontalOffset;
if(top<0)top=0;
if(left<0)left=0;
//IE6fix
if('undefined'==typeof(document.body.style.maxHeight))top=top+$(window).scrollTop();
$("#popup_container").css({
top:top+'px',
left:left+'px'
});
},
_maintainPosition:function(status){
if($.alerts.repositionOnResize){
switch(status){
casetrue:
$(window).bind('resize',function(){
$.alerts._reposition();
});
break;
casefalse:
$(window).unbind('resize');
break;
}
}
}
}
//Shortuctfunctions
jAlert=function(message,title,callback){
$.alerts.alert(message,title,callback);
}
jConfirm=function(message,title,callback){
$.alerts.confirm(message,title,callback);
};
jPrompt=function(message,value,title,callback){
$.alerts.prompt(message,value,title,callback);
};
})(jQuery);
<style>
*{margin:0;padding:0;}
#popup_container{
font-family:Arial,sans-serif;
font-size:12px;
min-width:300px;/*Dialogwillbenosmallerthanthis*/
max-width:600px;/*Dialogwillwrapafterthiswidth*/
background:#FFF;
border:solid1px#D09042;
color:#000;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
}
#popup_content{
background:16px16pxno-repeaturl(images/info.gif);
padding:1em1.75em;
margin:0em;
}
#popup_content.alert{
background-image:url(../images/info.png);
}
#popup_content.confirm{
background-image:url(../images/important.png);
}
#popup_content.prompt{
background-image:url(../images/help.png);
}
#popup_message{
padding-left:48px;
height:30px;
padding-top:10px;
font-size:15px;
}
#popup_panel{
text-align:center;
margin:1em0em0em1em;
}
#popup_prompt{
margin:.5em0em;
}
</style>
//使用方法
<script>
jConfirm('您确定吗?','系统提示',function(r){
jAlert('你选择了:'+r,'友情提示');
});
</script>
以上所述就是本文的全部内容了,希望大家能够喜欢。