jquery.artDialog.source.js学习
1 关键的对象关系
art = jQuery = $
function artDialog() {...}
artDialog.fn = artDialog.prototype = artDialog.fn._init.prototype
jQuery.fn = jQuery.prototype = jQuery.fn.init.prototype
jQuery.extend = jQuery.fn.extend
$.fn.dialog = $.fn.artDialog
window.artDialog = $.dialog = $.artDialog = artDialog
2 默认配置
artDialog.defaults = {
// 消息内容
content: '<div class="aui_loading"><span>loading..</span></div>',
title: '\u6d88\u606f', // 标题. 默认'消息'
button: null, // 自定义按钮
ok: null, // 确定按钮回调函数
cancel: null, // 取消按钮回调函数
init: null, // 对话框初始化后执行的函数
close: null, // 对话框关闭前执行的函数
okVal: '\u786E\u5B9A', // 确定按钮文本. 默认'确定'
cancelVal: '\u53D6\u6D88', // 取消按钮文本. 默认'取消'
width: 'auto', // 内容宽度
height: 'auto', // 内容高度
minWidth: 96, // 最小宽度限制
minHeight: 32, // 最小高度限制
padding: '20px 25px', // 内容与边界填充距离
skin: '', // 皮肤名(预留接口,尚未实现)
icon: null, // 消息图标名称
time: null, // 自动关闭时间
esc: true, // 是否支持Esc键关闭
focus: true, // 是否支持对话框按钮自动聚焦
show: true, // 初始化后是否显示对话框
follow: null, // 跟随某元素(即让对话框在元素附近弹出)
path: _path, // artDialog路径
lock: false, // 是否锁屏
background: '#000', // 遮罩颜色
opacity: .7, // 遮罩透明度
duration: 300, // 遮罩透明度渐变动画速度
fixed: false, // 是否静止定位
left: '50%', // X轴坐标
top: '38.2%', // Y轴坐标
zIndex: 1987, // 对话框叠加高度值(重要:此值不能超过浏览器最大限制)
resize: true, // 是否允许用户调节尺寸
drag: true // 是否允许用户拖动位置
};
3 获取某对话框
artDialog.get = function (id) {
return id === undefined
? artDialog.list
: artDialog.list[id];
};
iframeTools.source.js学习
var _top = artDialog.top // 引用顶层window对象;
artDialog.parent = _top; // 兼容v4.1之前版本,未来版本将删除此;
_topDialog = _top.artDialog; // 顶层window对象的artDialog对象;
artDialog.data // 跨框架数据共享接口,保存在顶层框架下面;
artDialog.through = _proxyDialog // 跨框架普通对话框
artDialog.open // 弹出窗口
artDialog.open.api // 引用open方法扩展方法
artDialog.opener // 引用open方法触发来源页面window
artDialog.open.origin = artDialog.opener; // 兼容v4.1之前版本,未来版本将删除此
artDialog.close // 关闭对话框
artDialog.alert // 警告对话框
artDialog.confirm // 确认对话框
artDialog.prompt // 输入提示对话框
artDialog.tips // 短暂提示对话框
// 获取源窗口
var winOpener = (art.dialog.opener == window) && window.opener || art.dialog.opener;
// 关闭窗口
var api = art.dialog.open.api;
api && api.close() || window.close();
JavaScript闭包写法的优势:隐藏实现细节,不污染window对象;
例如:
// 变量a的获取细节被隐藏,这样不会污染window对象;
var a = function() {
// do something
return 1;
}();
// 逻辑表达式特殊应用
a && alert("a=" + a);
// 创建自己的API并隐藏了实现细节,这样不会污染window对象;
;(function(p1, p2) {
// do something
// 将自己的对象赋值到window
window.xxx = xxx;
alert(p1 + "-" + p2);
})(1, 2);
常见的对话框实现
结合iframetools.source.js提供的默认实现;
建议使用时候同时导入jquery.artDialog.source.js和iframetools.source.js,由于默认实现的alert是一个警告消息框,这里可以自己去覆盖掉;
artDialog.shake = function () {
var style = this.DOM.wrap[0].style,
p = [4, 8, 4, 0, -4, -8, -4, 0],
fx = function () {
style.marginLeft = p.shift() + 'px';
if (p.length <= 0) {
style.marginLeft = 0;
clearInterval(timerId);
};
};
p = p.concat(p.concat(p));
timerId = setInterval(fx, 13);
return this;
};
artDialog.notice = function (options) {
var opt = options || {},
api, aConfig, hide, wrap, top,
duration = 800;
var config = {
id: 'Notice',
left: '100%',
top: '100%',
fixed: true,
drag: false,
resize: false,
follow: null,
lock: false,
init: function(here){
api = this;
aConfig = api.config;
wrap = api.DOM.wrap;
top = parseInt(wrap[0].style.top);
hide = top + wrap[0].offsetHeight;
wrap.css('top', hide + 'px')
.animate({top: top + 'px'}, duration, function () {
opt.init && opt.init.call(api, here);
});
},
close: function(here){
wrap.animate({top: hide + 'px'}, duration, function () {
opt.close && opt.close.call(this, here);
aConfig.close = $.noop;
api.close();
});
return false;
}
};
for (var i in opt) {
if (config[i] === undefined) config[i] = opt[i];
};
return artDialog.through(config);
};
artDialog.alert = function (content, callback) {
return artDialog.through({
id: 'Alert',
fixed: true,
content: content,
ok: true,
close: callback
});
};
artDialog.warn = function (content, callback) {
return artDialog.through({
id: 'Warn',
title: '警告',
icon: 'warning',
fixed: true,
lock: true,
content: content,
ok: true,
close: callback
});
};
jquery.artDialog.source.js学习的更多相关文章
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 现在学习 JavaScript 的哪种技术更好:Angular、jQuery 还是 Node.js?(转)
本文选自<开发者头条>1 月 7 日最受欢迎文章 Top 3,感谢作者 @WEB资源网 分享. 欢迎分享:http://toutiao.io/contribute 这是一个发布在 Quor ...
- jquery.maskload.js学习笔记
概述 Loadmask是一个jquery plugin,使用此插件可以在DOM元素加载或更改内容时为此DOM元素添加一个屏蔽层,以防止用户互动,同时起到提醒用户后台任务正在运行的作用. 使用此插件可以 ...
- jquery.tablesorter.js 学习笔记
jquery.tablesorter.js 一般情况下,表格数据的排序方式有两种,第一种是让后端服务将排序后的数据直接输出,另外一种方式就是使用客户端排序,而jquery.tablesorter.js ...
- JQuery学习:jquery对象和js对象区别和转换
JQuery对象与JS对象区别与转换 1.JQuery对象在操作时,更加方便 2.JQuery对象和js对象方法不通用 3.两者相互转换 * jq -- > js:jq对象[索引] 或者 ...
- Node.js 学习资源
这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学 ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- jquery.qrcode.min.js生成二维码 通过前端实现二维码生成
主体代码: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <tit ...
随机推荐
- selenium 无头浏览器headless browser
无头浏览器,即没有界面的浏览器,浏览器该有的功能特性都有. if browser.lower() == "chrome": # 无头浏览器 chrome_opt = webdriv ...
- php的字符串{}选定与{变量}
$str = "abcdefg"; echo $str{2};//输出c $a = "test"; echo "ddd{$a}";//输出d ...
- NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法
今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...
- NX二次开发-UFUN工程图表格注释section转tag函数UF_TABNOT_ask_tabular_note_of_section
NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...
- 判断PC端浏览器类型
if (browserInfo.type !== 'IE' || (browserInfo.type == 'IE' && Number(browserInfo.version) &g ...
- .Net Core 部署之一 《CentOS 从GitHub/Gitee 等源代码网站部署Web网站》
先看下楼主从某阿打折购买的渣渣服务器 lsb_release -a 一.安装dotnet-SDK 注册微软的服务 sudo rpm -Uvh https://packages.microsoft.co ...
- STM32F103
memory map • Four masters: – Cortex® -M3 core DCode bus (D-bus) and System bus (S-bus)– GP-DMA1 & ...
- 2019 牛客多校第三场 B Crazy Binary String
题目链接:https://ac.nowcoder.com/acm/contest/883/B 题目大意 给定一个长度为 N 的 01 字符串,输出最长子串和子序列的长度,满足其中 0 和 1 的个 ...
- asp.net Core 使用redis(StackExchange.Redis)
原文:asp.net Core 使用redis(StackExchange.Redis) 一.添加配置(appsettings.json) "Redis": { "Def ...
- 国行iphone第一次安装APP网络状况
国行手机第一次安装APP,会有请求网络权限的一个弹框出现,在这期间APP是没有任何网络连接的. 想必大部分APP的需求和这个逻辑有冲突. 先推荐一个链接:http://www.cocoachina.c ...