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

Bagaimanakah Saya Boleh Mengesan Perubahan Dimensi Elemen DIV dengan Amanah?

Patricia Arquette
Patricia Arquetteasal
2024-11-24 20:51:27333semak imbas

How Can I Reliably Detect DIV Element Dimension Changes?

Mengesan Perubahan Dimensi Elemen DIV

Anda menghadapi kesukaran untuk mengesan perubahan dimensi elemen DIV apabila tetingkap penyemak imbas diubah saiz. Soalan ini meneroka kemungkinan penyelesaian untuk masalah ini.

JQuery Resize Event Binding

Pendekatan awal anda untuk mengikat fungsi panggil balik kepada acara ubah saiz jQuery pada DIV adalah tidak betul. Peristiwa ubah saiz dicetuskan hanya apabila tetingkap diubah saiz, bukan apabila dimensi DIV berubah.

Penyelesaian: Resize Observer API

Penyelesaian yang lebih baharu ialah Resize Observer API, yang mempunyai sokongan pelayar yang baik. API ini membolehkan anda melihat perubahan dalam dimensi elemen:

const observer = new ResizeObserver((entries) => {
  // Code to handle dimension changes
});

observer.observe(targetElement);

Dalam sampel HTML yang disediakan, anda boleh menggunakan Ubah Saiz Observer API seperti berikut:

const textbox = document.getElementById('textbox');
const width = document.getElementById('width');
const height = document.getElementById('height');

const observer = new ResizeObserver(() => {
  width.value = textbox.offsetWidth;
  height.value = textbox.offsetHeight;
});

observer.observe(textbox);

Kod ini akan mengemas kini output lebar dan ketinggian apabila dimensi kotak teks berubah.

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