Sadece iki div ile basit bir balon oyunu geliştiriyorum. Sorun, iki divanın birbirlerine değdiği zaman bir fonksiyonu tetikleyemem.İki div, jquery ile temas halinde nasıl belirlenir?
cevap
Sınırlayıcı kutu çarpışma algılamasını arıyorsunuz. Bir etkinliği yükseltmek isterseniz, tekrar tekrar test etmelisiniz, ancak oyun döngüsünüzdeki tüm oyun nesneleri üzerindeki işlevi çalıştırmak daha iyi olurdu. sandbox 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;
}
teşekkürler, yararlı – thelost
Nasıl olurdu? Biri div'in yan yana oturmasına izin vermek için değil, üst üste gelmesine izin vermek için bunu düzenleyin. –
Hey @BC. Bu kodu atıfta bulunmadan serbestçe kopyalayıp kullanmamın sakıncası var mı? –
de misin jquery-collision artı jquery-ui-draggable-collision deneyebilirsiniz olduğunu. Tam açıklama: Sadece bunları kaynak kodunda yazdım ve yayınladım.
öncelikle bu izin verir:
"#collider" örtüşen tüm ".obstacle" listesidirvar hit_list = $("#collider").collision(".obstacle");
. bağlanma (diğer şeyler arasında) verir
$("#collider").draggable({ obstacle: ".obstacle" });
, bir "çarpışma" olayı:
ikinci verir
$("#collider").bind("collision", function(event,ui){...});
Ve hatta ayarlayabilirsiniz:
$("#collider").draggable({ obstacle: ".obstacle", preventCollision: true });
"#collider" öğesini sürüklerken herhangi bir ".obstacle" ile örtüşmesini önlemek için
.
Çok güzel Plugin! – user2896540
- 1. jQuery bir sırasız liste halinde div etiketlerinin bir dizi yapmak
- 2. Div pozisyonunu div (jQuery) ile takip edin -
- 3. İki sütun halinde gösterge öğelerini yüksek öbekler halinde gösterme
- 4. İki sütun halinde bir metni iki bölüme ayırın PHP'yi
- 5. jquery, div nasıl bilinir?
- 6. İki sınırlayıcıyla dize iki sütun halinde bölünmüş
- 7. jQuery ile bir div nasıl gizlenir?
- 8. jQuery DIV tıklama, çapa ile
- 9. grup ggplot2 'de iki sütun halinde
- 10. Jquery animate div başka bir div ile aynı konuma
- 11. JQuery ile bir div koordinatlarını alabilir miyim?
- 12. jQuery - İmleci bir DIV ile takip edin
- 13. jQuery jQuery ile iki element dinamically oluşturulan
- 14. Temas toplayıcısından doğrudan kişi ile iletişim kurun.
- 15. jQuery ile iki tarih değeri nasıl karşılaştırılır
- 16. CSS div 'height' den jquery ile div 'top' set
- 17. nasıl bir div öğesi (jQuery)
- 18. div merkezi bir başka iki div ise
- 19. Form iki kez (jquery ile ajax) gönderilir
- 20. Jquery div etiketine kaydır
- 21. İki göstergeli iki nesneye dokunma/serbest bırakma nasıl belirlenir
- 22. jquery ile dinamik div içeriği oluşturma
- 23. jquery click stilini bir div ile değiştir
- 24. jquery slide ile sorunlar - slidedown - div görünmüyor
- 25. Sıkışma temas kuvvetine gelinme
- 26. CNContactStore Temas kayıtlarının sayısı
- 27. Temas rengini sunucudan değiştir
- 28. jquery load(), div kullanırken
- 29. Div jquery sayısının sayısı
- 30. jquery div show'da gösterme
Yani div'ler hareket ediyor mu? Ya da tam olarak ne oluyor ve neden yapmaya çalışıyorsun? – justkt
jQuery draggables ya da başka bir şey kullanıyor musunuz? Bu sorunun cevabı almak için daha fazla bilgi/açıklama gerekiyor. – Tejs
Lütfen daha fazla bilgi ve bazı kodları sağlayın. – Ant