基于jquery ui的alert,confirm方案(支持换肤)


Posted in Javascript onApril 03, 2015

实现功能:

1.修改标题样式。把jquery ui的标题样式放上去。支持换肤。

2.修改按钮样式,换成jqueryui的button按钮样式。

3.将模式化窗口的背景换成了jqueryui的模式化背景。

代码:

//首先要引入jquery,以及ui的包和皮肤的样式如:
<script src="../js/ui/jquery-1.11.0.min.js"></script>
 <script src="../js/ui/jquery-migrate-1.1.0.min.js"></script>
 <script src="../js/ui/minified/jquery.ui.core.min.js"></script>
  <script src="../js/ui/minified/jquery.ui.widget.min.js"></script>
  <script src="../js/ui/minified/jquery.ui.mouse.min.js"></script>
  <script src="../js/ui/minified/jquery.ui.button.min.js"></script>
  <script src="../js/ui/minified/jquery.ui.draggable.min.js"></script>
<link rel="stylesheet" type="text/css" href="../js/ui/themes/humanity/jquery-ui.css"></link>
 
 
 
(function($) {
 
$.alerts = {
 
// These properties can be read/written by accessing $.alerts.propertyName from your scripts at any time
 
verticalOffset: -75, // vertical offset of the dialog from center screen, in pixels
horizontalOffset: 0, // horizontal offset of the dialog from center screen, in pixels/
repositionOnResize: true, // re-centers the dialog on window resize
overlayOpacity: .01, // transparency level of overlay
overlayColor: '#FFF', // base color of overlay
draggable: true, // make the dialogs draggable (requires UI Draggables plugin)
okButton: ' 确认 ', // text for the OK button
cancelButton: ' 取消 ', // text for the Cancel button
dialogClass: null, // if specified, this class will be applied to all dialogs
 
// Public methods
 
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);
});
},
 
// Private methods
 
_show: function(title, msg, value, type, callback) {
 
$.alerts._hide();
$.alerts._overlay('show');
 
$("BODY").append(
'<div id="popup_container" style="width:300px;height:150px;">' +
'<h2 id="popup_title" style="margin:0;padding:0;" class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"></h2>' +
'<div id="popup_content">' +
'<div id="popup_message"></div>' +
'</div>' +
'</div>');
 
if( $.alerts.dialogClass ) $("#popup_container").addClass($.alerts.dialogClass);
 
// IE6 Fix
//var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed';
var pos = ('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('<div id="popup_panel"><input type="button" onmouseover="$(this).addClass(\'ui-state-hover\')" onmouseout="$(this).removeClass(\'ui-state-hover\')" class="ui-button ui-widget ui-state-default ui-corner-all ui-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('<div id="popup_panel"><input type="button" onmouseover="$(this).addClass(\'ui-state-hover\')" onmouseout="$(this).removeClass(\'ui-state-hover\')" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" onmouseover="$(this).addClass(\'ui-state-hover\')" onmouseout="$(this).removeClass(\'ui-state-hover\')" class="ui-button ui-widget ui-state-default ui-corner-all ui-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 /><input type="text" size="30" id="popup_prompt" />').after('<div id="popup_panel"><input type="button" onmouseover="$(this).addClass(\'ui-state-hover\')" onmouseout="$(this).removeClass(\'ui-state-hover\')" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" onmouseover="$(this).addClass(\'ui-state-hover\')" onmouseout="$(this).removeClass(\'ui-state-hover\')" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"  value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>');
$("#popup_prompt").width( $("#popup_message").width() );
$("#popup_ok").click( function() {
var val = $("#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;
}
 
// Make draggable
if( $.alerts.draggable ) {
try {
$("#popup_container").draggable({ handle: $("#popup_title") });
$("#popup_title").css({ cursor: 'move' });
} catch(e) { /* requires jQuery UI draggables */ }
}
},
 
_hide: function() {
$("#popup_container").remove();
$.alerts._overlay('hide');
$.alerts._maintainPosition(false);
},
 
_overlay: function(status) {
switch( status ) {
case 'show':
$.alerts._overlay('hide');
$("BODY").append('<div class="ui-widget-overlay" id="popup_overlay"></div>');
break;
case 'hide':
$("#popup_overlay").remove();
break;
}
},
 
_reposition: function() {
var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset;
var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
if( top < 0 ) top = 0;
if( left < 0 ) left = 0;
 
// IE6 fix
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) {
case true:
$(window).bind('resize', function() {
$.alerts._reposition();
});
break;
case false:
$(window).unbind('resize');
break;
}
}
}
 
}
 
// Shortuct functions
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; /* Dialog will be no smaller than this */
max-width: 600px; /* Dialog will wrap after this width */
background: #FFF;
border: solid 1px #D09042;
color: #000;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
 
 
#popup_content {
background: 16px 16px no-repeat url(images/info.gif);
padding: 1em 1.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: 1em 0em 0em 1em;
}
 
#popup_prompt {
margin: .5em 0em;
}
</style>
 
//使用方法
<script>
jConfirm('您确定吗?', '系统 提示', function(r) {
  jAlert('你选择了: ' + r, '友情提示');
});
</script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
[原创]静态页面也可以实现预览 列表不同的显示方式
Oct 14 Javascript
JavaScript语句可以不以;结尾的烦恼
Mar 08 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
解析javascript 实用函数的使用详解
May 10 Javascript
jQuery滚动条插件nanoscroller使用指南
Apr 21 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
详解vite2.0配置学习(typescript版本)
Feb 25 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 #Javascript
JavaScript替换当前页面的方法
Apr 03 #Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 #Javascript
JavaScript返回网页中锚点数目的方法
Apr 03 #Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 #Javascript
JavaScript获取页面中表单(form)数量的方法
Apr 03 #Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 #Javascript
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
一个超级简单的python web程序
2014/09/11 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
python求解汉诺塔游戏
2020/07/09 Python
PyTorch安装与基本使用详解
2020/08/31 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
数控专业毕业生求职信范文
2013/09/21 职场文书
投标承诺书怎么写
2014/05/24 职场文书
颐和园英文导游词
2015/01/30 职场文书
撤诉书怎么写
2015/05/19 职场文书
教师远程培训心得体会
2016/01/09 职场文书
500字作文之周记
2019/12/13 职场文书