我只是在開發一個帶有兩個div的簡單氣球遊戲。問題是,當兩個div彼此接觸時,我無法觸發某個功能。如何檢測兩個div是否碰到jquery?
回答
您正在尋找邊界框碰撞檢測。如果你想要舉辦一個活動,你必須反覆測試,但最好是從你的遊戲循環中運行所有遊戲對象的功能。沙箱是http://jsfiddle.net/nGRwt/7/
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;
}
謝謝,有幫助 – thelost 2012-01-25 22:26:24
如何一個編輯器允許div並排坐在一起但不重疊? – 2013-01-17 00:02:50
嘿@BC。你介意我是否可以自由複製和使用這些代碼而不需要署名? – 2015-10-25 19:19:10
您可以嘗試jquery-collision加jquery-ui-draggable-collision。全面披露:我剛剛在sourceforge上撰寫併發布了這些內容。
第一個允許這樣的:
var hit_list = $("#collider").collision(".obstacle");
這是所有 「.obstacle」 重疊 「#collider」 的名單。
第二種允許:
$("#collider").draggable({ obstacle: ".obstacle" });
它給你(除其他事項外), 「衝突」 事件綁定到:
$("#collider").bind("collision", function(event,ui){...});
而且你甚至可以設置:
$("#collider").draggable({ obstacle: ".obstacle", preventCollision: true });
防止「#collider」在拖動時與任何「。障礙物」重疊。
非常漂亮的插件! – user2896540 2013-11-27 22:12:53
- 1. iOS - 如何檢測兩個或多個對象是否碰撞
- 2. div的jquery碰撞檢測
- 3. jQuery碰撞插件|如何真正檢查是否有碰撞
- 4. 如何檢測是否選擇了div?
- 5. JavaScript/JQuery中的多個DIV碰撞檢測
- 6. 如何檢測我的球體是否碰到另一個靜態球體
- 7. jQuery假碰撞檢測
- 8. 如何讓pygame檢查兩幅圖像是否碰撞?
- 9. 在Xcode中,如何檢測兩個iPhone之間的碰撞?
- 10. 如何檢測libgdx中兩個精靈之間的碰撞?
- 11. 如何檢測UIImageView碰撞
- 12. AS3:如何檢測碰撞?
- 13. 碰撞檢測 - 如何?
- 14. 如何檢測碰撞力?
- 15. jquery檢測是否另一個div當前正在顯示
- 16. 如何檢測屬於兩個不同的UIViews的兩個UIImageView碰撞?
- 17. 碰撞檢測:碰到哪邊? [Java,Slick2D]
- 18. Jquery DIV碰撞
- 19. 檢測標籤是否碰到導航欄
- 20. 如何在檢測到碰撞後處理碰撞
- 21. 如何測試一個UIView是否被另一個UIView觸碰?
- 22. jQuery,如何檢查一個插件是否已經應用到一個div?
- 23. 如何檢查兩個移動物體是否相互碰撞IOS
- 24. 我如何檢測兩個CALayers是否重疊?
- 25. 如何檢測兩個句子是否相似?
- 26. 如何檢測2個物體碰撞時顏色是否相同?
- 27. 碰撞檢測不檢測
- 28. 碰撞檢測
- 29. 如何在一組Div元素之間實現碰撞檢測?
- 30. jQuery - 如何檢查兩個元素是否相同?
所以divs在移動?或者究竟發生了什麼,你試圖造成什麼? – justkt 2011-03-24 12:34:29
你使用jQuery的可拖曳或任何東西?這個問題需要更多的信息/澄清才能得到迴應。 – Tejs 2011-03-24 12:34:35
請提供更多信息和一些代碼。 – Ant 2011-03-24 12:36:43