Çözüldü Jquery ile divlerin temas etmesi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Jarvis0

Hectopat
Katılım
8 Eylül 2019
Mesajlar
134
Arkadaşlar, HTML'de iki div öğesinin temas etmesi halinde durmalarını ve alert uyarısı vermesini istiyorum. JavaScript ve Jquery ile bunu yapabilir miyim?
 
Son düzenleyen: Moderatör:
Çözüm
JavaScript:
//moveDivs fonksiyonu ile div'leri hareket ettirdiğinizi var sayıyorum.
function moveDivs() {
    //...
}
   
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;
}

setInterval(()=>{
    if (collision($(".div1"), $(".div2"))) {
        alert("Div'ler birbirine değiyor.");
    }
}, 10);

Kaynak: How to detect if two divs touch with jquery?
JavaScript:
//moveDivs fonksiyonu ile div'leri hareket ettirdiğinizi var sayıyorum.
function moveDivs() {
    //...
}
   
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;
}

setInterval(()=>{
    if (collision($(".div1"), $(".div2"))) {
        alert("Div'ler birbirine değiyor.");
    }
}, 10);

Kaynak: How to detect if two divs touch with jquery?
 
Çözüm
JavaScript:
//moveDivs fonksiyonu ile div'leri hareket ettirdiğinizi var sayıyorum.
function moveDivs() {
 //...
}

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;
}

setInterval(()=>{
 if (collision($(".div1"), $(".div2"))) {
 alert("Div'ler birbirine değiyor.");
 }
}, 10);

Kaynak: How to detect if two divs touch with jquery?

Çok teşekkür ederim
 
Çok teşekkür ederim
Çözüm olarak işaretlemişsiniz hocam ama söyleyeyim;

JavaScript:
if (collision($(".div1"), $(".div2"))) {
        alert("Div'ler birbirine değiyor.");
    }

kısmını moveDivs() fonksiyonu içerisinde kullanırsanız daha iyi olur. Yazarken aklımdan çıkmış, hareket ettirme işlemi yapıldıktan sonra if'in çalışması daha mantıklı olur. Fonksiyonun en sonuna eklemeniz gerekecektir.
 
Çözüm olarak işaretlemişsiniz hocam ama söyleyeyim;

JavaScript:
if (collision($(".div1"), $(".div2"))) {
 alert("Div'ler birbirine değiyor.");
 }

Kısmını moveDivs() fonksiyonu içerisinde kullanırsanız daha iyi olur. Yazarken aklımdan çıkmış, hareket ettirme işlemi yapıldıktan sonra if'in çalışması daha mantıklı olur. Fonksiyonun en sonuna eklemeniz gerekecektir.

Anladım teşekkürler.
 

Geri
Yukarı