Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengesan Perlanggaran Antara Elemen dalam jQuery/JavaScript?

Bagaimana untuk Mengesan Perlanggaran Antara Elemen dalam jQuery/JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-11-19 09:12:02995semak imbas

How to Detect Collisions Between Elements in jQuery/JavaScript?

Pengesanan Perlanggaran jQuery/JavaScript

Mengenal pasti Elemen Bertindih

Mengetahui apabila dua elemen telah bertindih adalah penting untuk pelbagai aplikasi web interaktif. Bayangkan permainan mudah di mana dua kotak berwarna bergerak secara berserenjang pada grid. Untuk menentukan sama ada kotak merah telah berlanggar dengan mana-mana kotak lain, anda boleh menggunakan penyelesaian jQuery/JavaScript berikut:

Pecahan Fungsi

getPositions: Dapatkan semula kedudukan dan dimensi unsur.

bandingkanKedudukan: Membandingkan julat dua kedudukan yang diberikan dan mengembalikan benar jika ia bertindih atau bersentuhan.

bertindih: Fungsi utama menyemak pertindihan antara dua elemen. Ia menggunakan getPositions dan comparePositions untuk menentukan sama ada mana-mana paksi mereka bertindih.

Pelaksanaan

  1. Tentukan bertindih berfungsi sebagai penutup.
  2. Dapatkan kedudukan kedua-dua elemen sedang diperiksa.
  3. Bandingkan julat mendatar dan menegak kedua-dua elemen menggunakan comparePositions.
  4. Kembalikan benar jika mana-mana julat bertindih.

Contoh

Pertimbangkan HTML struktur:

<div>

Dan JavaScript yang sepadan:

var overlaps = (function () {
  // ... same as before ...
})();

$(function () {
  var area = $('#area')[0],
      box = $('#box0')[0],
      html;

  html = $('#area').children().not(box).map(function (i) {
    return '<p>Red box + Box ' + (i + 1) + ' = ' + overlaps(box, this) + '</p>';
  }).get().join('');

  $('body').append(html);
});

Skrip ini menambahkan mesej pada halaman yang menunjukkan sama ada kotak merah bertindih dengan mana-mana kotak lain.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Perlanggaran Antara Elemen dalam jQuery/JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn