JQuery UIを使用してサイズ変更/ドラッグ可能な要素を実装しています。ここでは、これらの要素の封じ込めを定義して、正確に3つの(!)面のサイズ変更/ドラッグを制限したいと考えています。例えば。このJSFiddle exampleをご覧ください。含まれている要素は、親の領域内でのみサイズ変更/ドラッグすることができます。JQuery UI draggable:片側に閉じ込めを閉じます
私が達成したいのは、要素が下限しきい値を超え、親の下限を超えて移動できることです。それにもかかわらず、リサイズ/ドラッグは、親の境界に従って規定されているように、上、右、および左のサイドで制限されるべきである。
のでthis modificationは私が思い付いたものです:あなたは子供が親の下の境界線に近づきすぎた場合、親の領域が展開されていることに気づく下の境界で遊んでいる場合
// resizable/draggable option
resize/drag : function(event, ui) {
expandParent("#parentElement", "#dragElement");
}
function expandParent(parentName, childName) {
var dragEl = $(childName);
var dragElTop = parseInt(dragEl.css("top"), 10);
var dragElHeight = parseInt(dragEl.css("height"), 10);
var dragElBottom = dragElTop + dragElHeight;
var parentEl = $(parentName);
var parentElBottom = parseInt(parentEl.css("height"));
if(parentElBottom <= dragElBottom + 20) {
parentEl.css("height", "+=2");
}
}
。残念ながら、これは20ピクセル後に停止します。その後、マウスボタンを離し、再度サイズを変更/ドラッグして領域をさらに拡張する必要があります。あなたはそれがなぜなのか考えていますか?
を与え、あなたのアプリケーションに基づいてコードを変更する必要が
Check the JS Fiddle
:ここ
は私のソリューションです。 'if(parentElBottom <= dragElBottom + 20){'おそらく '20'が問題を引き起こしているのでしょうか? –さて、はい、あなたは、移動の開始時に親の領域の一部であった可能な最も低い位置に要素を移動できます。したがって、領域の拡張はJQuery UIのモデルに転送されないと思います。 – Bastian