Pagebox.js 页面窗体

演示:

演示地址:http://webdesk.weisha100.cn/pagebox.html

开源地址:https://github.com/weishakeji/WebdeskUI

示例:
     //创建窗体
    var box=$pagebox.create({
        width: 400,
        height: 300,
        right:10,
        top:10,
        url: 'pagebox-child.html',
        title: '可移动,可缩放;双击标题栏全屏'
    });
    box.open();
属性:

大部分属性支持双向绑定,可以直接设置属性改变窗体。

下表中,“可监听”的属性,可以通过watch()增加监听方法,类似Vue;“双向绑定”的意思是属性更改后,直接影响窗体样式。

属性 说明 可监听 双向绑定
title 窗体的标题栏文字 √ √
url 窗体中的内容页网址 √ √
width,height 宽高 √ √
top,left 窗体上和左的位置 √ √
right,bottom 窗体右和下的位置 √ √
ico 窗体左上角图标 √
full 设置窗体最大化 √ √
mini 设置窗体最小化,注意它与min的区别 √ √
resize 是否允许缩放窗体 √ √
move 是否允许移动窗体 √ √
max 是否允许窗体最大化 √ √
min 是否允许窗体最小化 √ √
close 是否显示关闭按钮 √ √
dom 窗体的dom对象
parent 父窗体对象
childs 下级窗体对象列表
方法:

下表只列出了常用方法,更多请参看源码。

方法 说明 参数
open() 打开窗体,触发onshown事件 无
watch() 增加自定义属性监听 //obj:pagebox对象,val:传入的值,old:原值
例如:box.watch({
'title':function(obj,val,old){
console.log('通过外部监听,新的title:'+val);
}
});
focus() 当前窗体获取焦点,最前面显示
shut() 关闭当前窗体
toFull() 窗体最大化,建议直接box.full=true;将自动触发这个方法;
toWindow() 窗体还原,建议直接box.full=false或box.mini=false
document() iframe中的文档对象
getChilds() 所有子级窗体,包括下级的下级
bind() 绑定事件 bind(事件名,方法)
事件名仅限 'shown', 'shut', 'load', 'fail', 'click', 'drag', 'focus', 'blur', 'min', 'full', 'restore', 'resize'
trigger() 触发事件 trigger(事件名,[消息])
事件:

事件支持多播,即同一个事件可以添加多个方法。事件方法的返回型仅限bool型,虽然可以返回其它类型或不返回,但最终都会转为bool型返回值。

当同一个事件中的多个方法,有任一个返回false,则不再继续执行后续事件方法。如果不返回,默认是true。

var box=$pagebox.create();
//关闭事件
box.onshut(function(s,e){
    return confirm('是否确定关闭?');
}).onshut(function(s,e){
    return confirm('再次确认关闭?');
});
box.open();
事件 说明 参数sender 参数e
shown 打开 当前pagebox对象 e.event:事件名称
e.action:动作,默认与e.event同值
e.target:响应事件的html元素,此处为窗体的html
shut 关闭 同上 同上
load 加载完成,不管是否失败   e.target:窗体iframe中的文档对象(document)
e.url:窗体iframe中的页面路径,即src的值
fail 加载失败   同上
click 点击   与onshown相同
drag 拖动位置   e.target:窗体标题栏
e.mouse:鼠标当前坐标,{x,y}
e.move:移动的偏移量(相较于拖动之前),{x,y}
e.offset:当前窗体的位置,{left,top}
focus 获取焦点   与onshown相同
blur 失去焦点   与onshown相同
mini 最小化 与onshown相同
full 最大化   与onshown相同
restore 还原   e.action:如果是全屏还原,为from-full; 最小化还原为from-min
resize 缩放窗体大小   e.mouse:鼠标当前坐标,{x,y}
e.move:移动的偏移量(相较于拖动之前),{x,y}
e.offset:当前窗体的位置,{left,top}
e.width:缩放宽度
e.height:缩放高度
e.target:缩放控件
e.action:缩放的方向