easyui防止panel,dialog,window超出父元素边界

      easyui 
本人亲测,性能ok;

不会出现当父级容器比弹窗小时,无法解除鼠标的移动事件;有兴趣的朋友欢迎来玩玩;



下面给大家贴出源码:

var easyuiWindowOnMove = function(left, top) {
//如果不在操作范围则不移动
if((top == 1 && left > 0 ) || (left == 1 && top > 0 ) ) return;

var parentObj = $(this).panel('panel').parent(); //父级容器
var obj = $(this).panel('options');       //当前窗口
var left1,top1,l = parentObj.width() - obj.width, t = parentObj.height() - obj.height;
var overflow = parentObj.css("overflow") == "hidden" ? true : false;
//left  top  为当前拖动的window窗口的相对于父级容器的左边距跟上边距

if ((left < 0) || (overflow && l < 0 )) {
left1 = 1 ;
}
if ((top < 0) || (overflow && t < 0 )) {
top1 = 1 ;
}
if(overflow && (left > l && l > 0)){
left1 = l ;
}
if(overflow && (top >  t && t > 0)){
top1 = t ;
}
if(left1 || top1){ //此处移动需注意,要在最后进行,不然有情况是无法摆脱鼠标的拖动事件,卡死浏览器
$(this).window('move', {
"left":  left1,
"top":  top1
});
}
};
$.fn.panel.defaults.onMove = easyuiPanelOnMove;
$.fn.window.defaults.onMove = easyuiWindowOnMove;
$.fn.dialog.defaults.onMove = easyuiPanelOnMove;

效果如下:



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值