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:缩放的方向