打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jQuery-easyUI防止panel,dialog,window窗口超出父元素边界
<script type="text/javascript" src="../../jquery-1.8.0.min.js"></script> <script type="text/javascript" src="../../jquery.easyui.min.js"></script> <script type="text/javascript" src="../../plugins/jquery.resizable.js"></script> <script type="text/javascript" src="../../plugins/jquery.draggable.js"></script> <script> var ie = (function(){ var undef, v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i'); while (div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->', all[0]); return v > 4 ? v : undef; }()); /** * add by cgh * 针对panel window dialog三个组件调整大小时会超出父级元素的修正 * 如果父级元素的overflow属性为hidden,则修复上下左右个方向 * 如果父级元素的overflow属性为非hidden,则只修复上左两个方向 * @param width * @param height * @returns */ var easyuiPanelOnResize = function(width, height){ if(!$.data(this,'window') && !$.data(this,'dialog')) return; if(ie===8){ var data = $.data(this, "window") || $.data(this, "dialog"); if(data.pmask){ var masks = data.window.nextAll('.window-proxy-mask'); if(masks.length > 1){ $(masks[1]).remove(); masks[1] = null; } } } if($(this).panel('options').maximized==true){ $(this).panel('options').fit=false; } $(this).panel('options').reSizing = true; if(!$(this).panel('options').reSizeNum){ $(this).panel('options').reSizeNum = 1; }else{ $(this).panel('options').reSizeNum++; } var parentObj = $(this).panel('panel').parent(); var left = $(this).panel('panel').position().left; var top = $(this).panel('panel').position().top; if ($(this).panel('panel').offset().left < 0) { $(this).panel('move', { left: 0 }); } if ($(this).panel('panel').offset().top < 0) { $(this).panel('move', { top: 0 }); } if (left < 0) { $(this).panel('move', { left: 0 }).panel('resize', { width: width + left }); } if (top < 0) { $(this).panel('move', { top: 0 }).panel('resize', { height: height + top }); } if (parentObj.css("overflow") == "hidden") { var inline = $.data(this, "window").options.inline; if(inline==false){ parentObj = $(window); } if ((width + left > parentObj.width()) && $(this).panel('options').reSizeNum > 1) { $(this).panel('resize', { width: parentObj.width() - left }); } if ((height + top > parentObj.height()) && $(this).panel('options').reSizeNum > 1) { $(this).panel('resize', { height: parentObj.height() - top }); } } $(this).panel('options').reSizing = false; }; /** * add by cgh * 针对panel window dialog三个组件拖动时会超出父级元素的修正 * 如果父级元素的overflow属性为hidden,则修复上下左右个方向 * 如果父级元素的overflow属性为非hidden,则只修复上左两个方向 * @param left * @param top * @returns */ var easyuiPanelOnMove = function(left, top){ if ($(this).panel('options').reSizing) 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 < 0) { $(this).panel('move', { left: 0 }); } if (top < 0) { $(this).panel('move', { top: 0 }); } if (parentObj.css("overflow") == "hidden") { var inline = $.data(this, "window").options.inline; if(inline==false){ parentObj = $(window); } if (left > parentObj.width() - width) { $(this).panel('move', { "left": parentObj.width() - width }); } if (top > parentObj.height() - height) { $(this).panel('move', { "top": parentObj.height() - height }); } } }; $.fn.panel.defaults.onResize = easyuiPanelOnResize; $.fn.window.defaults.onResize = easyuiPanelOnResize; $.fn.dialog.defaults.onResize = easyuiPanelOnResize; $.fn.window.defaults.onMove = easyuiPanelOnMove; $.fn.panel.defaults.onMove = easyuiPanelOnMove; $.fn.dialog.defaults.onMove = easyuiPanelOnMove;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jQuery easyui 1.2.5 window、dialog发送两遍请求
python测试开发django-166.jQuery 使用append()动态添加div元素
jquery easyui滚动条部分设置介绍
jQuery EasyUI Tabs关闭Tab时不能完全释放内存解决方法
每个程序员都会的 35 个 jQuery 小技巧(3)
EasyUI 教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服