假设我有两个div绝对定位,是否可以计算这两个div重叠的位置,然后绘制另一个div放置在重叠区域的顶部。
我一直在网上搜索,我所遇到的大多数事情只涉及重叠检测,like this fiddle
我不明白如何获得重叠区域的以下位置:
offsetTop
offsetLeft
width
height
在指出我从哪里开始时,任何帮助都会受到赞赏。
我有this fiddle用于我一直在玩的东西 - 你会看到我正在尝试创建一个div来坐在重叠的部分上并将它混合成两种颜色的混合物
答案 0 :(得分: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/