0

ドラッグ可能でサイズ変更可能な 2 つの要素があります。それらは水平に並んでいます。私の問題は、一番上の最初の要素のサイズを変更しようとすると、下の 2 番目の要素の位置が最初の要素を自動的に覆うことです。

以下はスタイルです:

<style>
    #request-grid { width: 500px; min-height: 200px; margin: 10px; padding: 0.5em;}
    #bb-clist { width: 500px; min-height: 200px; margin: 10px; padding: 0.5em;}
    .ui-resizable-helper { border: 2px dotted #00F; }
</style>

以下はjqueryuiコードです:

$( "#request-grid" ).draggable({containment: "#content", scroll: true, stack: "#content div" });
$( "#bb-clist" ).draggable({containment: "#content", scroll:true, stack: "#content div"});

$( "#request-grid" ).resizable({
helper: "ui-resizable-helper",  containment: "#content"
});

$( "#bb-clist" ).resizable({
helper: "ui-resizable-helper", containment: "#content"
});

以下は html 要素です。

<div id="request-grid" class="ui-widget-content">
</div>

<div id="bb-clist" class="ui-widget-content">
</div>

サイズ変更時に他の要素が他の要素を覆ったり重なったりせずに、この問題を解決するにはどうすればよいですか。

ありがとう。

4

3 に答える 3

2

HTML

<div>
    <div id="request-grid"></div>
    <br/>
    <div id="bb-clist"></div>
</div>

CSS

#request-grid {
    height:100px;
    width: 200px;
    min-height: 100px;
    margin: 10px;
    padding: 0.5em;
    background-color:pink;
}
#bb-clist {
    height:100px;
    width: 200px;
    min-height: 100px;
    margin: 10px;
    padding: 0.5em;
    background-color:blue;
}
.ui-resizable-helper {
    border: 2px dotted #00F;
}

jQuery

$(document).ready(function () {

    $("#request-grid").draggable({
        containment: "#document",
        scroll: false,
        stack: "#content div"
    });
    $("#bb-clist").draggable({
        containment: "#document",
        scroll: false,
        stack: "#content div"
    });

    $("#request-grid").resizable({
        helper: "ui-resizable-helper",
        containment: "document",
        resize: function (event, ui) {
            var height = (ui.size.height + 'px');
            $('#bb-clist').css('posotion', 'absolute').css('top', height);
        },
        stop: function (event, ui) {
            var h2 = (ui.size.height);
            if (h2 < 200) {
                h2 = 100; // set default min-height if re-sized less than min-height.
            }
            $('#bb-clist').css('posotion', 'absolute').css('top', h2);
        }

    });

    $("#bb-clist").resizable({
        helper: "ui-resizable-helper",
        containment: "document"
    });
});

ワーキングデモ http://jsfiddle.net/cse_tushar/qkKV6/

于 2013-05-03T06:58:01.227 に答える
0

オーバーラップの問題を克服するために、z-index 値を使用できます。

次のように、サイズ変更可能な要素により高い z-index 値を設定するだけです。

#ResizableElement
{
  z-index: 10;    //default is 1
}

より高い z-index 値を持つ要素は、常に他の要素と重なります。ドラッグ可能な要素に z-index 値を設定することもできます。これも機能します。

$("#request-grid").draggable({ zIndex: 10 });
于 2013-05-03T05:24:30.403 に答える