Tôi có ví dụ này trong jsfiddleLàm cách nào để triển khai phát hiện va chạm giữa một tập hợp các phần tử Div?
Tôi có một var như là các yếu tố va chạm:
var $div = $('.container');
và sau đó va chạm:
function test(){
$('.drag')
.drag("start",function(ev, dd){
dd.limit = $div.offset();
dd.limit.bottom = dd.limit.top + $div.outerHeight()
- $(this).outerHeight();
dd.limit.right = dd.limit.left + $div.outerWidth()
- $(this).outerWidth();
})
.drag(function(ev, dd){
$(this).css({
top: Math.min(dd.limit.bottom, Math.max(dd.limit.top, dd.offsetY)),
left: Math.min(dd.limit.right, Math.max(dd.limit.left, dd.offsetX))
});
});
}
cho:
<div class="container"></div>
<div class="drag xxx" style="left:40px;"></div>
<div class="drag xxx" style="left:120px;"></div>
<div class="drag xxx" style="left:200px;"></div>
Mã này triển khai phát hiện xung đột của div con chống lại div container. Làm thế nào tôi sẽ thực hiện phát hiện va chạm để làm cho 3 divs va chạm với nhau?
Tôi đang nghĩ để thiết lập một div khác: var $divs = $('.xxx');
nhưng không chắc chắn cách sử dụng nó trong ví dụ này.
Bằng cách "va chạm với chính mình", bạn có nghĩa là "ngăn chặn quá/underlap?" –
bản sao có thể có của [Vui lòng giới thiệu một plugin JQuery xử lý phát hiện va chạm cho các phần tử có thể kéo] (http://stackoverflow.com/questions/773717/please-recommend-a-jquery-plugin-that-handles-collision-detection-for -draggable) –
w có thể thấy rằng chúng va chạm với thùng chứa '
' tôi cũng muốn va chạm với chúng – Patrioticcow