artDialog

artDialog

首页 > 文档与示例



artDialog —— 经典、优雅的网页对话框控件。

  1. 支持普通与 12 方向气泡状对话框
  2. 完善的焦点处理,自动焦点附加与回退
  3. 支持 ARIA 标准
  4. 面向未来:基于 HTML5 Dialog 的 API
  5. 支持标准与模态对话框
  6. 丰富且友好的编程接口
  7. 能自适应内容尺寸
  8. 仅 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‘));
运行

12 个方向定位演示

添加按钮

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控制对话框了。

打开示例页面

小提示:增强版的选项比标准版多了urloniframeload这几个字段。

方法

若无特别说明,方法均支持链式调用。

show([anchor])

显示对话框。

默认居中显示,支持传入元素节点或者事件对象。

  • 参数类型为HTMLElement:可吸附到元素上,同时对话框将呈现气泡样式。
  • 参数类型为Event Object:根据event.pageXevent.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参数支持StringHTMLElement类型。

示例

传入字符串:

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)

添加事件。

支持的事件有:showclosebeforeremoveremoveresetfocusblur

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‘));
运行

12 个方向定位演示

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

设定对话框唯一标识。

  1. 可防止重复 ID 对话框弹出。
  2. 支持使用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 选项。

源码构建

时间: 2024-11-05 18:47:51

artDialog的相关文章

artDialog 简单几种用法

$('#btn1').click(function(){        artDialog({title:'图片查看', content:'<img width="817" height="479" src="http://www.hunanyishi.cn/images/main.jpg" />', fixed:true});        return false;    });                        $(

Dialog插件artDialog

经本人测试,发现没有layer好用,因为artDialog不能拖拽.不过除了拖拽,其他还蛮简洁的,在自定义上的灵活性也还可以.下面是我自己写的测试demo. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, u

artDialog测试

<script src="../Content/artDialog/v4/artDialog.source.js?skin=default"></script> <script type="text/javascript"> function fun01() { art.dialog({ title: 'hello world!', content: '欢迎使用artDialog对话框组件!', icon: 'succeed' }

artDialog ( v 6.0.2 ) content 参数引入页面 html 内容

/*! artDialog v6.0.2 | https://github.com/aui/artDialog */ 将页面某一隐藏的 div 的 html 内容传到 artdialog 的弹窗中,并且该 div 不会被删除,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="lib/jquery-1.10.2.js"&g

artdialog 异步加载页面 生成验证码

artdialog  异步加载一个页面 需求:例如现在好多网站的登录或注册 都是点击弹出一个层出来 然后在上面登录.注册 这个登录可能在网站的每个页面都会有,但是我们又不能在每个页面都这一段html加载出来不显示,到需要用的时候,在给shou出来,这样做于情于理都说!不!!过!!!去!!!!!! 恰好以前接触过artdialog  不多说上代码,(注意思维,代码是死的方法是活,解决需求不一定非要这个方法 ) 1.页面html代码 1 <head runat="server">

artDialog学习之旅(二)之扩展方法详解

名称 描述 核心方法 art.dialog.top 获取artDialog可用最高层window对象.这与直接使用window.top不同,它能排除artDialog对象不存在已经或者顶层页面为框架集的情况这是iframe应用工具集中的核心方法,你可以用它来操作父页面对象(包括上面的对话框) art.dialog.data(name, value) 跨框架数据共享写入接口.框架与框架之间以及与主页面之间进行数据交换是非常头疼的事情,常规情况下你必须知道框架的名称才能进行数据交换,如果是在复杂的多

artDialog学习之旅(一)

接口 配置参数 content: {消息内容,支持HTML} title: {标题.默认:'提示'} lock: {是否锁定屏幕. 默认:false} width: {宽度,支持em等单位. 默认:'auto'} height: {高度,支持em等单位. 默认:'auto'} url: {iframe地址,存在content参数时候,此参数无效} x: {x坐标,可以使用关键字,如:left/right/center. 默认:'center'} y: {y坐标,可以使用关键字,如:top/bot

jQuery插件之artDialog

artDialog是一个非常强大的弹出框插件.默认有两个版本,一个是jQuery版,一个是javascript版.功能非常多,而且使用非常简单.不写了,直接贴上官网的预览运行地址,以后用得着的时候去那里找代码就OK了. 官网预览地址:http://www.planeart.cn/demo/artDialog/_doc/API.html

artdialog对话框 三种样式 网址:http://www.planeart.cn/demo/artDialog/_doc/labs.html

摇头效果 类似与wordpress登录失败后登录框可爱的左右晃动效果 // 2011-07-17 更新 artDialog.fn.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 =

ArtDialog V6的简单使用

artDialog v6 -- 经典的网页对话框组件,内外皆用心雕琢. 兼容性 測试通过:IE6~IE11.Chrome.Firefox.Safari.Opera 授权协议 免费,且开源.基于LGPL协议. 支持开源 贡献代码 || 捐赠一杯咖啡 || 商业授权 artDialog,献给那些愿意为 web 极致体验付出的人们! 四年来.有超过 40 万站点在使用 artDialog,当中不乏国内顶尖的产品: QQ空间 v8(腾讯) Phpcms(盛大) 极路由 在artDialog的使用中,使用