Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesan Perubahan Dimensi DIV dengan Amanah dalam JavaScript?

Bagaimanakah Saya Boleh Mengesan Perubahan Dimensi DIV dengan Amanah dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-11-29 22:01:15603semak imbas

How Can I Reliably Detect DIV Dimension Changes in JavaScript?

Mengesan Perubahan Dimensi DIV

Masalah:

Menentukan dimensi DIV selalunya perlu, terutamanya apabila elemen di dalamnya diubah kedudukan semasa mengubah saiz tetingkap. Walau bagaimanapun, acara ubah saiz jQuery tradisional untuk DIV tidak mengesan perubahan dimensi.

Penyelesaian: Ubah Saiz Observer API

Penyelesaian yang lebih baharu ialah Resize Observer API, yang menyediakan cara yang lebih baik untuk memantau perubahan pada DIV dimensi.

Pelaksanaan:

Untuk menggunakan Resize Observer API:

  1. Sertakan skrip dalam HTML anda:

    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/resize-observer-polyfill/dist/ResizeObserver.min.js"></script>
  2. Buat Ubah Saiz baharu Pemerhati:

    const resizeObserver = new ResizeObserver(function(entries) {
      ...
    });
  3. Perhatikan sasaran DIV:

    resizeObserver.observe(targetDiv);
  4. Tentukan fungsi panggil balik untuk mengendalikan perubahan dimensi:

    function callback(entries) {
      const entry = entries[0];
      const width = entry.contentRect.width;
      const height = entry.contentRect.height;
    
      // Do something with the new dimensions
    }
  5. Tambahkan fungsi panggil balik pada pemerhati:

    resizeObserver.addCallback(callback);

    Dengan menggunakan Ubah Saiz Observer API, anda kini boleh mengesan dan bertindak balas terhadap perubahan dalam dimensi DIV, walaupun jika elemen dalam diletakkan semula.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Perubahan Dimensi DIV dengan Amanah dalam 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