我想看看我的两个div将要重叠并彼此接触。这个例子中的两个黄色div。Div重叠和碰撞位置
为什么在div甚至不互相重叠或接触的阶段碰撞返回true?
http://jsfiddle.net/HWfMt/156/
var degree = 0;
var degreeSmall = 0;
var timer=30;
var $spin = $(".gear");
var $spinSmall = $(".gear-small");
var to;
var toSmall;
function collision($div1, $div2) {
var x1 = $div1.offset().left;
var y1 = $div1.offset().top;
var h1 = $div1.outerHeight(true);
var w1 = $div1.outerWidth(true);
var b1 = y1 + h1;
var r1 = x1 + w1;
var x2 = $div2.offset().left;
var y2 = $div2.offset().top;
var h2 = $div2.outerHeight(true);
var w2 = $div2.outerWidth(true);
var b2 = y2 + h2;
var r2 = x2 + w2;
if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2) return false;
return true;
}
$(document).ready(function() {
rotate();
});
function rotate() {
degree++;
$spin.css({ 'WebkitTransform': 'rotate(' + degree + 'deg)'});
$spin.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
to = setTimeout(function() {
rotate();
}, timer);
$('#result').text(collision($('.gear .inner-gear.yellow'), $('.gear-small .inner-gear.yellow')));
}
由于
这里是测试我跑http://jsfiddle.net/abc123/HWfMt/162/它出现在x轴的变化。 – abc123 2015-04-05 11:16:06
你的建议是什么@ abc123 – Kiwimoisi 2015-04-05 11:51:33
我认为一个解决方案是检测它们是否在没有旋转或停止时发生碰撞。无论如何,我只会在他们停止时检查,因此我认为在轮换期间不需要检查。这样的结果可能实际上是准确的。 @ abc123 – Kiwimoisi 2015-04-07 05:18:33