easyui 弹出新增窗口移动的时候会移动出边界,鼠标在浏览器内是不会移动出边界的,但是当鼠标移动到浏览器边界的时候就会出现变形,然后窗口就跑到右边去了,下面也是同样的情况 ,这个是怎么回事,代码如下:
/**
* add by cgh
* 针对panel window dialog三个组件拖动时会超出父级元素的修正
* 如果父级元素的overflow属性为hidden,则修复上下左右个方向
* 如果父级元素的overflow属性为非hidden,则只修复上左两个方向
* @param left
* @param top
* @returns
*/
var easyuiPanelOnMove = function(left, top){
if ($(this).panel('options').closed)
return;
var parentObj = $(this).panel('panel').parent();
var width = $(this).panel('options').width;
var height = $(this).panel('options').height;
var right = left + width;
var buttom = top + height;
var parentWidth = parentObj.width();
var parentHeight = parentObj.height();
if (left < 1) {
$(this).panel('move', {
left: 1
});
}
if (top < 1) {
$(this).panel('move', {
top: 1
});
}
if (parentWidth < right) {
$(this).panel('move', {
left: parentWidth-width
});
}
if (parentHeight < buttom) {
$(this).panel('move', {
top: parentHeight-height
});
}
};
$.fn.window.defaults.onMove = easyuiPanelOnMove;
//$.fn.panel.defaults.onMove = easyuiPanelOnMove;
$.fn.dialog.defaults.onMove = easyuiPanelOnMove;