Bagaimana untuk Mengesan Peristiwa Ubah Saiz Tetingkap yang Tepat dalam JavaScript/jQuery?

Susan Sarandon
Lepaskan: 2024-11-04 15:30:02
asal
242 orang telah melayarinya

How to Detect Accurate Window Resize Events in JavaScript/jQuery?

Mengesan Peristiwa Ubah Saiz Tetingkap Tepat dalam JavaScript/jQuery

Apabila menggunakan $(window).resize untuk memantau perubahan saiz tetingkap, adalah perkara biasa untuk menghadapi berbilang peristiwa penembakan semasa saiz semula manual. Ini boleh menjadi masalah apabila anda perlu melaksanakan kod hanya selepas saiz semula selesai.

Penyelesaian:

Untuk menangani isu ini, kami boleh menggunakan fungsi waitForFinalEvent:

<code class="javascript">var waitForFinalEvent = (function () {
  var timers = {};
  return function (callback, ms, uniqueId) {
    if (!uniqueId) {
      uniqueId = "Don't call this twice without a uniqueId";
    }
    if (timers[uniqueId]) {
      clearTimeout (timers[uniqueId]);
    }
    timers[uniqueId] = setTimeout(callback, ms);
  };
})();</code>
Salin selepas log masuk

Fungsi ini memastikan bahawa panggilan balik hanya dilaksanakan selepas kelewatan yang ditentukan (500ms secara lalai) berikutan peristiwa ubah saiz terakhir. Parameter uniqueId membenarkan penggunaan berbilang panggilan balik tanpa konflik.

Penggunaan:

Untuk menggunakan fungsi ini, anda boleh mengubah suai kod anda seperti berikut:

<code class="javascript">
$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});</code>
Salin selepas log masuk

Dengan melaksanakan penyelesaian ini, anda boleh memastikan bahawa kod anda bertindak balas dengan tepat kepada peristiwa mengubah saiz tetingkap, hanya dilaksanakan selepas saiz semula telah selesai.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Peristiwa Ubah Saiz Tetingkap yang Tepat dalam JavaScript/jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan