使用该jQuery插件
要想使用该jQuery插件,需要把$(selector).boxy();放在document.ready中。使用合适的选择器表达式替换这里的"selector",例如:"a[rel=boxy],form.with-confirmation"。这会给匹配的元素附加一些行为,如下:
一个href属性中如果锚点包含#,则此锚点相对应的ID的DOM元素的内容就会被添加到boxy对话框中。
如果href锚点内容为其他一些东西,则会试图使用Ajax载入其对应的内容。理想情况下,我们有相同的起源检查和委托对框架的跨域请求。这将会在下面展示。
表单上会显示一个提交模式的确认消息。
其他的元素将会被忽略
手动创建实例
用手动模式使用boxy是很容易的——只需要创建一个boxy的新实例,传递一些内部的内容和任何附加的散列对象。在默认情况下,对话框会立即显示出来,在视角的中心,可拖拽。所有的这些设置都可以通过给构造函数传递附加的对象来进行覆盖——更多详情请参见下面的[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#options]构造函数选项[/url]
传递给构造函数的内容可以是任何有效的参数,jQuery的$()函数- DOM元素,是HTML片断或其他jQuery对象。无论提供的是什么,其display属性均被设置为block,并插入名为
boxy-content的class在对话框中。
[b]下面为一些代表性的示例:[/b]
[list]
[*]创建一个新的对话框,[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {title: "对话框"});[/url]。
[/*][*]创建一个新对话框,无法拖拽。[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {title: "对话框", draggable: false});[/url]。
[/*][*]创建一个新的对话框,没有默认的关闭按钮。[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {title: "对话框", closeable:false});[/url]。
[/*][*]新建对话框,使用absolute绝对定位(跟随滚动条)[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {title: "对话框, fixed:false"});[/url]。
[/*][*]新建对话框,模态的[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {title: "对话框, modal:true"});[/url]。
[/*][*]新建对话框,自定义行为[url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]new Boxy("<p>内容……</p>", {behaviours: function(r) { $(r).hover(function() { $(this).css("background-color", "red"); }, function() { $(this).css("background-color", "white"); }); }});[/url]。 [/*][/list]
[b]修改现有的对话[/b]
(先打开一个对话框,然后再单击下面的链接事件)
[list]
[*]让最新的对话框放大的动画 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]someDialog.tween(400, 400);[/url]
[/*][*]让最新的对话框减小的动画 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]someDialog.tween(100, 100);[/url]
[/*][*]获取最新的对话框的标题 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]someDialog.getTitle();[/url]。
[/*][*]更改最新的对话框的标题 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]someDialog.setTitle("新标题");[/url] [/*][/list]
请注意,标题栏(也就是关闭按钮和拖动器)只有在标题指定的情况下会出现,在未来,这种行为可能会发生变化,使标题栏始终存在,除非特别禁用。
一旦您创建了一个实例,您可以将通过提供的API分配给一个变量,随后移动,改变大小,显示和隐藏 - 记录如下。
[b]提问[/b]
使用Boxy.ask(),Boxy.alert()和Boxy.confirm()这些帮手可能提示用户从一些选项中进行选择以及完成可选的回调函数。点击下面含有演示的链接,参考API文档获取更多信息。
[list]
[*]提问 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]Boxy.ask()[/url] - 用户定义的选项,选择项传递给回调函数
[/*][*]弹出 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]Boxy.alert()[/url] - 回调函数总是不被调用
[/*][*]确认 - [url=http://demo.jb51.net/js/2011/jquery-plugin-boxy/page/jQuery-plugin-boxy.html#nogo]Boxy.confirm()[/url] - 仅当用户选择了“确认”时回调函数会被调用 [/*][/list]
[url=#]
[b]Boxy.ask(question, answers, callback, options)[/b]
显示模式,即非可关闭对话框,允许用户选择选项。问题是要显示给用户的信息。答案是一个数组或一切可能的回答的数列。回调函数将收到选定的回答,这是否是需要的值或相应的密钥要根据一个数组或答案数列是否已经提供了。options是一种额外的可选设置选项传递给对话框的构造函数。
[b]Boxy.alert(message, callback, options)[/b]
显示模式,非可关闭对话框显示消息给用户。
[b]注意:[/b]此方法并[b]不是[/b]为了取代浏览器本地window.alert()函数提供,因为它没有能力阻止程序执行,在对话框是可见的时候。
[b]Boxy.confirm(message, callback, options)[/b]
显示模式,非可关闭对话框显示的含有确定和取消按钮的消息。回调只会在用户选择了“确定”时被调用。
[b]注意:[/b]此方法并[b]不是[/b]为了取代浏览器提供的本地window.confirm()函数,因为它没有能力在对话框可见时阻止程序执行的。
[b]Boxy.linkedTo(ele)[/b]
返回已通过执行器构造函数选项连接DOM元素的boxy实例。
[b]Boxy.isModalVisible()[/b]
返回true如果任何模式对话框是当前可见的,否则返回false。
[b]new Boxy(element, options)[/b]
构造函数;创建一个新的boxy对话框。element是对话框的内容;任何有效的参数,jQuery的$()函数在这里也是有效的。options是一个配置选项的散列,见下面详细的资料。
[b]estimateSize()[/b]
当对话框不可见的时候估计其大小。如果当前对话框可见,不要使用此方法,使用getSize()代替。
[b]getSize()[/b]
以数组的形式[width, height]返回对话框的大小。
[b]getContentSize()[/b]
返回对话框内容区域的大小。默认情况下,指在对话框框架里的一切,不包括标题栏。
[b]getPosition()[/b]
以[x,y]数组形式返回最顶层对话框的左上角坐标。
[b]getCenter()[/b]
以[x,y]数组形式返回最顶层对话框的中心点的坐标。
[b]getInner()[/b]
返回一个jQuery对象包装对话框的内部区域-框架内包括标题栏一切。
[b]getContent()[/b]
返回一个jQuery对象包装对话框的内容区域-框架内的一切,不包括标题栏。
[b]setContent(newContent)[/b]
设置对话框中的内容,任何对$()有效的参数也对设置的新内容有效。可链接。
[b]moveTo(x,y)[/b]
移动对话框到左上角为(x,y)的位置,可链接。
[b]centerAt(x,y)[/b]
把对话框移动到中心坐标为(x,y)的位置上。
[b]center(axis)[/b]
移动对话框,使其在视野的中央。可选参数axis可以是"x","y"中的任意一个中心轴。可链接。
[b]resize(w,h,after)[/b]
重新调整对话框的高宽到[w,h],完成后执行回调函数,回调函数将接受Boxy实例作为参数。可链接。
[b]tween(w,h,after)[/b]
动画补间对话框高宽到[w,h],完成后执行回调函数,回调函数将接受Boxy实例作为参数。可链接。
[b]isVisible()[/b]
如果当前对话框可见,则返回true,否则返回false。
[b]show()[/b]
显示对话框,可链接。
[b]hide(after)[/b]
隐藏对话框,after为可选回调函数,完成后执行。可链接。
[b]toggle()[/b]
触发对话框的显隐属性。可链接。
[b]hideAndUnload(after)[/b]
在隐藏后立即执行卸载。在卸载之前执行after回调函数。可链接。
[b]unload()[/b]
从DOM中删除对话框,切断其与执行机构的联系,如果有的话。一旦出现一个对话框已被卸载它的任何进一步行动都是未定义的。
[b]toTop()[/b]
将当前对话框移动到其他所有对话框的上部。可链接。
[b]getTitle()[/b]
以HTML的形式返回对话框的标题。
[b]setTitle(t)[/b]
设置对话框的标题为t,可链接。