1

絶対に配置された 2 つの div があるとします。これら 2 つの div が重なる場所を計算し、別の div を描画して重なっている領域の上に配置することは可能ですか。

私はウェブを検索してきましたが、私が見つけたほとんどのものは、このフィドルのようにオーバーラップ検出のみに関係しています

オーバーラップ エリアの次の位置を取得する方法がわかりません。

offsetTop
offsetLeft
width
height

どこから始めればよいか教えていただけると助かります。

私が遊んでいたものにはこのフィドルがあります-重なり合う部分に座って2つの色の混合物に色を付けるためにdivを作成しようとしていることがわかります

4

1 に答える 1

5

まだエラーチェックはしていませんが、次のようなものが必要だと思います: http://jsfiddle.net/GApu5/4/

計算式は次のとおりです。

var l1=div1.offset().left-8;
var t1=div1.offset().top-8;
var w1=div1.width();
var h1=div1.height();

var l2=div2.offset().left-8;
var t2=div2.offset().top-8;
var w2=div2.width();
var h2=div2.height();    

var top = Math.max(t1,t2);
var left = (l2>l1 && l2<(l1+w1)) ? l2 : (l1>l2 && l1<(l2+w2)) ? l1 : 0;
var width = Math.max(Math.min(l1+w1,l2+w2) - Math.max(l1,l2),0);
var height = Math.max(Math.min(t1+h1,t2+h2) - Math.max(t1,t2),0);
overlay.css({'top': top, 'left': left, 'width': width, 'height': height});

すべての面で作品を表示するには: http://jsfiddle.net/GApu5/5/

于 2013-06-12T14:07:26.183 に答える