artDialog 文档
artDialog —— 经典、优雅的网页对话框控件。
- 支持普通与 12 方向气泡状对话框
- 完善的焦点处理,自动焦点附加与回退
- 支持 ARIA 标准
- 面向未来:基于 HTML5 Dialog 的 API
- 支持标准与模态对话框
- 丰富且友好的编程接口
- 能自适应内容尺寸
- 仅 4kb (gzip)
文档导航
引入 artDialog
1.直接引用
<script src="lib/jquery-1.10.2.js"></script>
<link rel="stylesheet" href="css/ui-dialog.css">
<script src="dist/dialog-min.js"></script>
2.作为 RequireJS 或 SeaJS 的模块引入
var dialog = require('./src/dialog');
注意:内部依赖全局模块require('jquery'),请注意全局模块配置是否正确。seajs加载示例
- 如果需要支持 iframe 内容与拖拽,请引用加强版 dialog-plus.js
- jquery 最低要求版本为
1.7+
快速参考
普通对话框
var d = dialog({
title: '欢迎',
content: '欢迎使用 artDialog 对话框组件!'
});
d.show();
运行
模态对话框
var d = dialog({
title: 'message',
content: '<input autofocus />'
});
d.showModal();
运行
气泡浮层
var d = dialog({
content: 'Hello World!',
quickClose: true// 点击空白处快速关闭
});
d.show(document.getElementById('quickref-bubble'));
运行
添加按钮
1.确定与取消按钮:
var d = dialog({
title: '提示',
content: '按钮回调函数返回 false 则不许关闭',
okValue: '确定',
ok: function () {
this.title('提交中…');
return false;
},
cancelValue: '取消',
cancel: function () {}
});
d.show();
运行
2.指定更多按钮:
请参考 button 方法或参数。
控制对话框关闭
var d = dialog({
content: '对话框将在两秒内关闭'
});
d.show();
setTimeout(function () {
d.close().remove();
}, 2000);
运行
给对话框左下脚添加复选框
var d = dialog({
title: '欢迎',
content: '欢迎使用 artDialog 对话框组件!',
ok: function () {},
statusbar: '<label><input type="checkbox">不再提醒</label>'
});
d.show();
运行
点按钮不关闭对话框
按钮事件返回 false 则不会触发关闭。
var d = dialog({
title: '欢迎',
content: '欢迎使用 artDialog 对话框组件!',
ok: function () {
var that = this;
this.title('正在提交..');
setTimeout(function () {
that.close().remove();
}, 2000);
return false;
},
cancel: function () {
alert('不许关闭');
return false;
}
});
d.show();
运行
不显示关闭按钮
var d = dialog({
title: '欢迎',
content: '欢迎使用 artDialog 对话框组件!',
cancel: false,
ok: function () {}
});
d.show();
运行
创建 iframe 内容
artDialog 提供了一个增强版用来支持复杂的 iframe 套嵌的页面,可以在顶层页面创建一个可供 iframe 访问的对话框创建方法,例如:
seajs.use(['dialog/src/dialog-plus'], function (dialog) {
window.dialog = dialog;
});
然后子页面就可以通过top.dialog控制对话框了。
小提示:增强版的选项比标准版多了
url、oniframeload这几个字段。
方法
若无特别说明,方法均支持链式调用。
show([anchor])
显示对话框。
默认居中显示,支持传入元素节点或者事件对象。
- 参数类型为
HTMLElement:可吸附到元素上,同时对话框将呈现气泡样式。 - 参数类型为
Event Object:根据event.pageX与event.pageY定位。
示例
var d = dialog();
d.content('hello world');
d.show(document.getElementById('api-show'));
运行
var d = dialog({
id: 'api-show-dialog',
quickClose: true,
content: '右键菜单'
});
$(document).on('contextmenu', function (event) {
d.show(event);
return d.destroyed;
});
运行
showModal([anchor])
显示一个模态对话框。
其余特性与参数可参见show([anchor])方法。
示例
var d = dialog({
title: 'message',
content: '<input autofocus />'
});
d.showModal();
运行
close([result])
关闭(隐藏)对话框。
可接收一个返回值,可以参见 returnValue。
注意:close()方法只隐藏对话框,不会在 DOM 中删除,删除请使用remove()方法。
remove()
销毁对话框。
注意:不同于close([result])方法,remove()方法会从 DOM 中移出对话框相关节点,销毁后的对话框无法再次使用。
对话框按钮点击后默认会依次触发 close()、remove() 方法。如果想手动控制对话框关闭可以如下操作:
var d = dialog();
// [..]
d.close().remove();
运行
content(html)
写入对话框内容。
html参数支持String、HTMLElement类型。
示例
传入字符串:
var d = dialog();
d.content('hello world');
d.show();
运行
传入元素节点:
var elem = document.getElementById('test');
dialog({
content: elem,
id: 'EF893L'
}).show();
v6.0.4 更新:隐藏元素将会自动显示,并且对话框卸载的时候会放回到
body中
title(text)
写入对话框标题。
示例
var d = dialog();
d.title('hello world');
d.show();
运行
width(value)
设置对话框宽度。
示例
dialog({
content: 'hello world'
})
.width(320)
.show();
运行
height(value)
设置对话框高度。
示例
dialog({
content: 'hello world'
})
.height(320)
.show();
运行
reset()
手动刷新对话框位置。
通常动态改变了内容尺寸后需要刷新对话框位置。
button(args)
自定义按钮。
参数请参考 选项button;同时支持传入 HTML 字符串填充按钮区域。
focus()
聚焦对话框(置顶)。
blur()
让对话框失去焦点。
addEventListener(type, callback)
添加事件。
支持的事件有:show、close、beforeremove、remove、reset、focus、blur
removeEventListener(type, callback)
删除事件。
dialog.get(id)
根据获取打开的对话框实例。
注意:这是一个静态方法。
dialog.getCurrent()
获取当前(置顶)对话框实例。
注意:这是一个静态方法。
配置参数
content
设置消息内容。
类型
String, HTMLElement
示例
传入字符串:
dialog({
content: 'hello world!'
}).show();
运行
传入元素节点:
var elem = document.getElementById('test');
dialog({
content: elem,
id: 'EF893L'
}).show();
title
标题内容。
类型
String
示例
dialog({
title: 'hello world!'
}).show();
运行
statusbar
状态栏区域 HTML 代码。
可以实现类似“不再提示”的复选框。注意:必须有按钮才会显示。
类型
String
示例
var d = dialog({
title: '欢迎',
content: '欢迎使用 artDialog 对话框组件!',
ok: function () {},
statusbar: '<label><input type="checkbox">不再提醒</label>'
});
d.show();
运行
ok
确定按钮。
回调函数this指向dialog对象,执行完毕默认关闭对话框,若返回 false 则阻止关闭。
类型
Function
示例
dialog({
ok: function () {
this
.title('消息')
.content('hello world!')
.width(130);
return false;
}
}).show();
运行
okValue
(默认值: "ok") 确定按钮文本。
类型
String
示例
dialog({
okValue: '猛击我',
ok: function () {
this.content('hello world!');
return false;
}
}).show();
运行
cancel
取消按钮。
取消按钮也等同于标题栏的关闭按钮,若值为false则不显示关闭按钮。回调函数this指向dialog对象,执行完毕默认关闭对话框,若返回false则阻止关闭。
类型
Function, Boolean
示例
dialog({
title: '消息',
ok: function () {},
cancel: function () {
alert('取消');
}
}).show();
运行
dialog({
title: '消息',
content: '不显示关闭按钮',
ok: function () {},
cancel: false
}).show();
运行
cancelValue
(默认值: "cancel") 取消按钮文本。
类型
String
示例
dialog({
cancelValue: '取消我',
cancel: function () {
alert('关闭');
}
}).show();
运行
cancelDisplay
(默认值: true) 是否显示取消按钮。
类型
Boolean
示例
dialog({
title: '提示',
content: '这是一个禁止关闭的对话框,并且没有取消按钮',
cancel: function () {
alert('禁止关闭');
return false;
},
cancelDisplay: false
}).show();
运行
button
自定义按钮组。
类型
Array
选项
| 名称 | 类型 | 描述 |
|---|---|---|
| value | String | 按钮显示文本 |
| callback | Function | (可选) 回调函数this指向dialog对象,执行完毕默认关闭与销毁对话框(依次执行close()与remove()),若返回false则阻止关闭与销毁 |
| autofocus | Boolean | (默认值:false) 是否自动聚焦 |
| disabled | Boolean | (默认值: false) 是否禁用 |
示例
dialog({
button: [
{
value: '同意',
callback: function () {
this
.content('你同意了');
return false;
},
autofocus: true
},
{
value: '不同意',
callback: function () {
alert('你不同意')
}
},
{
id: 'button-disabled',
value: '无效按钮',
disabled: true
},
{
value: '关闭我'
}
]
}).show();
运行
width
设置对话框 内容 宽度。
类型
String, Number
示例
dialog({
width: 460
}).show();
运行
dialog({
width: '20em'
}).show();
运行
height
设置对话框 内容 高度。
类型
String, Number
示例
dialog({
height: 460
}).show();
运行
dialog({
height: '20em'
}).show();
运行
skin
设置对话框额外的className参数。
多个className请使用空格隔开。
类型
String
示例
dialog({
skin: 'min-dialog tips'
}).show();
padding
(默认值: 继承 css 文件设置) 设置消息内容与消息容器的填充边距,即 style padding属性
类型
String
示例
dialog({
content: 'hello world',
padding: 0
}).show();
运行
fixed
(默认值: false) 开启固定定位。
固定定位是 css2.1 position的一个属性,它能固定在浏览器某个地方,也不受滚动条拖动影响。IE6 与部分移动浏览器对其支持不好,内部会转成绝对定位。
类型
Boolean
示例
dialog({
fixed: true,
title: '消息',
content: '请拖动滚动条查看'
}).show();
运行
align
(默认值: "bottom left") 设置对话框与其他元素的对齐方式。
如果show(elem)与showModal(elem)传入元素,align参数方可生效,支持如下对齐方式:
"top left""top""top right""right top""right""right bottom""bottom right""bottom""bottom left""left bottom""left""left top"
类型
String
示例
var d = dialog({
align: 'left',
content: 'Hello World!',
quickClose: true
});
d.show(document.getElementById('option-align'));
运行
autofocus
(默认值: true) 是否支持自动聚焦。
类型
Boolean
quickClose
(默认值: false) 是否点击空白出快速关闭。
类型
Boolean
示例
var d = dialog({
content: '点击空白处快速关闭',
quickClose: true
});
d.show(document.getElementById('option-quickClose'));
运行
zIndex
(默认值: 1024) 重置全局zIndex初始值,用来改变对话框叠加高度。
比如有时候配合外部浮动层 UI 组件,但是它们可能默认zIndex没有对话框高,导致无法浮动到对话框之上,这个时候你就可以给对话框指定一个较小的zIndex值。
请注意这是一个会影响到全局的配置,后续出现的对话框叠加高度将重新按此累加。
类型
Number
示例
dialog({
zIndex: 87
}).show();
运行
onshow
对话框打开的事件。
回调函数this指向dialog对象。
类型
Function
示例
var d = dialog({
content: 'loading..',
onshow: function () {
this.content('dialog ready');
}
});
d.show();
运行
onclose
对话框关闭后执行的事件。
回调函数this指向dialog对象。
类型
Function
示例
var d = dialog({
onclose: function () {
alert('对话框已经关闭');
},
ok: function () {}
});
d.show();
运行
onbeforeremove
对话框销毁之前事件。
回调函数this指向dialog对象。
类型
Function
onremove
对话框销毁事件。
回调函数this指向dialog对象。
类型
Function
示例
var d = dialog({
onclose: function () {
alert('对话框已经关闭');
},
onremove: function () {
alert('对话框已经销毁');
},
ok: function () {}
});
d.show();
运行
onfocus
对话框获取焦点事件。
回调函数this指向dialog对象。
类型
Function
onblur
对话框失去焦点事件。
回调函数this指向dialog对象。
类型
Function
onreset
对话框位置重置事件。
回调函数this指向dialog对象。
类型
Function
id
设定对话框唯一标识。
- 可防止重复 ID 对话框弹出。
- 支持使用
dialog.get(id)获取某个对话框的接口。
类型
String
示例
dialog({
id: 'id-demo',
content: '再次点击运行看看'
}).show();
dialog.get('id-demo').title('8888888888');
运行
属性
open
判断对话框是否被打开。
returnValue
对话框返回值。
示例
var d = dialog({
title: '消息',
content: '<input id="property-returnValue-demo" value="1" />',
ok: function () {
var value = $('#property-returnValue-demo').val();
this.close(value);
this.remove();
}
});
d.addEventListener('close', function () {
alert(this.returnValue);
});
d.show();
运行
其他
自定义样式
打开配置文件: src/dialog-config.js,其中cssUir字段是 css 文件的路径,innerHTML字段则是 artDialog 的模板。修改这两个字段即可很方便的设计属于自己的皮肤。
一套皮肤可以添加不同的className实现多种状态,可参考 skin 选项。
源码构建
使用 GruntJS 在 artDialog 源码根目录执行即可。
artDialog 文档的更多相关文章
- jQuery弹出层---artDialog 文档
artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口 自适应内容 artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应 ...
- ArtDialog文档
http://www.planeart.cn/demo/artDialog/_doc/API.html#API
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- dotNET跨平台相关文档整理
一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ABP文档 - EntityFramework 集成
文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...
- ABP文档 - SignalR 集成
文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- ABP文档 - Hangfire 集成
文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...
随机推荐
- QTP基础学习(二)启动与设置
1.启动QTP选择要求的Add-in 默认带有3个Add-in,之后可以安装其他的Add-in,如.net的Add-in 2.设置QTP的选项 点击Tools-Options,弹出如下框: 3.建立记 ...
- Sql注入截取字符串常用函数
在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用 ...
- kvm虚拟机时间修改
在虚拟化环境中,虚拟机在长时间运行过程中,时间会变慢,通常的作法是配置ntpdate定时与时间服务器进行时间同步的计划任务.KVM虚拟机默认采用utc时间,需要专门修改,以及考虑kvm时间同步问题.1 ...
- ASP.NET MVC 扩展数据验证 转
此文只作记录 public class MaxWordsAttribute : ValidationAttribute { public MaxWordsAttribute(int maxWords) ...
- C#进阶系列——WebApi身份认证解决方案:Basic基础认证 (转)
http://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人 ...
- C#操作JSON
http://www.cnblogs.com/LiZhiW/p/3624729.html C#操作JSON 1. .NET对JSON的支持介绍............................. ...
- iOS后台定位实现
iOS后台定位实现 (2013-01-24 16:43:12) 工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置. 苹果对iOS的规范性在提升了app的品质的同时也 ...
- 深入探索Android中的Handler
一.概述 1. 什么是Handler Handler是Android消息机制的上层接口,它为我们封装了许多底层的细节,让我们能够很方便的使用底层的消息机制.Handler的最常见应用场景之一便是通过H ...
- org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback.....Parameter index out of range (1 > number of parameters, which is 0).;
sql有误,一般是 sql语句少了问号.
- 架构师速成-如何高效编程 for java
引子 赵云大喝一声,挺枪骤马杀入重围,左冲右突,如入无人之境.那枪浑身上下,若舞梨花:遍体纷纷,如飘瑞雪. 赵云是所有历史人物中我最喜欢的一个,如果放到现代,他走了it的道路,一定可以成为一个编程高手 ...