easyui 1.4.3 窗口创建或拖动超过父元素 边界 BUG 解决方法

简介: 使用EASYUI 窗口时,创建或者移动 会超过父元素边界,不能关闭,非常别扭。 风来了.fox 标记:主要这边 就是要注意的地方 /** * * @param title * @param href * @param width * @param height * @param modal * @param minimizable * @param maximiz

使用EASYUI 窗口时,创建或者移动 会超过父元素边界,不能关闭,非常别扭。

风来了.fox

标记:主要这边

就是要注意的地方

/**
 *
 * @param title
 * @param href
 * @param width
 * @param height
 * @param modal
 * @param minimizable
 * @param maximizable
 */
function showMyWindow(title, href, width, height, modal, minimizable, maximizable) {
    var _w_width=$(window).width(),_w_height=$(window).height();console.info(_w_width)
    $('#myWindow').window({
            title: title,
            width: width === undefined ? 600 : (width<=_w_width?width:_w_width),//主要这边
            height: height === undefined ? 400 : (height<=_w_height?height:_w_height),//主要这边
            content: '<iframe scrolling="yes" frameborder="0"  src="'
            + href
            + '" style="width:100%;height:99%;"></iframe>',
            modal: modal === undefined ? true : modal,
            minimizable: minimizable === undefined ? false : minimizable,
            maximizable: maximizable === undefined ? false : maximizable,
            shadow: false,
            cache: false,
            closed: false,
            collapsible: false,
            resizable: false,
            draggable: true,
            loadingMessage: '正在加载数据,请稍等片刻......',
            onMove:function(left, top) {//主要这边
                    var parentObj = $(this).panel('panel').parent();
                    if (left < 0) {
                            $(this).window('move', {
                                    left : 1
                            });
                    }
                    if (top < 0) {
                            $(this).window('move', {
                                    top : 1
                            });
                    }
                    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(parentObj.css("overflow")=="hidden"){
                            if(left > parentWidth-width){
                                    $(this).window('move', {
                                            "left":parentWidth-width
                                    });
                            }
                            if(top > parentHeight-height){
                                    $(this).window('move', {
                                            "top":parentHeight-height
                                    });
                            }
                    }
            }
        });
}

部分来自:http://www.easyui.info/archives/430.html
目录
相关文章
EasyUI之Form load函数IE8下设置Radio或Checkbox的BUG
EasyUI的form的load函数很好用,表单赋值就靠它了,简单方便。我们可以指定url以Ajax加载,如: 1: $('#ff').form('load', 'ajax/common') JSON如下: 也可以指定json,比如: 1: $('form').
1099 0
|
JavaScript API 容器
jQuery EasyUI API 中文文档 - 窗口(Window)
Window 窗口    扩展自 $.fn.panel.defaults,用 $.fn.window.defaults 重写了 defaults。 依赖 draggable resizable panel 用法 1.
765 0