我有一個div("#basket"
),其應該捕獲具有相同的類(".food"
)碰撞具有多個元件(各功能?)
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;
var value = Number(($div1).attr("data-value"));
$("#counter").html(parseInt($("#counter").html()) + value);
function getsmall() {
$div1.remove();
//$div1.stop().animate({width: "0px",height:"0px"}, 200, function(){});
}
getsmall();
}
window.setInterval(function() {
var basket = $('#basket');
var food_1 = ('#food_1'); // classname .food
var food_2 = ('#food_2'); // classname .food
collision($(food_1), $(basket));
collision($(food_2), $(basket));
}, 200);
會有超過。食物的20和我的許多元素如果我使用每個元素的ids
,就不想編寫那麼多的代碼。
這個函數對於兩個獨特的元素(兩個id)很有效,但是對於一個元素只有一個id和超過20個元素只有一個類名的情況下,這個函數不會有效。
函數collision
如何執行到#basket
以及許多類名爲.food
的元素?
不,不知道你問。你能澄清一下你的問題嗎,一點都不清楚 – Liam
編輯了這個問題 – Cycle99
你可能想使用像d3.js這樣的圖形庫,因爲碰撞的實現是相當直截了當的。 – Terry