好的。結束使用this duplicate的修改版本。該做的工作職能是:
var overlaps = (function() {
function getPositions(elem) {
var pos, width, height;
pos = $(elem).position();
width = $(elem).width()/2;
height = $(elem).height();
return [ [ pos.left, pos.left + width ], [ pos.top, pos.top + height ] ];
}
function comparePositions(p1, p2) {
var r1, r2;
r1 = p1[0] < p2[0] ? p1 : p2;
r2 = p1[0] < p2[0] ? p2 : p1;
return r1[1] > r2[0] || r1[0] === r2[0];
}
return function (a, b) {
var pos1 = getPositions(a),
pos2 = getPositions(b);
return comparePositions(pos1[0], pos2[0]) && comparePositions(pos1[1], pos2[1]);
};
})();
,並通過使用overlaps(div1, div2);
(返回TRUE或FALSE)調用。
它們是如何碰撞的? – Starx 2012-03-19 10:12:53
可能的副本:http://stackoverflow.com/q/4230029/1048572,http://stackoverflow.com/q/8829421/1048572 – Bergi 2012-03-19 10:14:18
謝謝,我會看看他們。他們使用jQuery UI droppable進行碰撞。我想檢測一個div是否已經放在同一個地方。 – 2012-03-19 10:34:59