Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memanggil Acara RESIZE JQuery Hanya Apabila Saiz Semula Selesai?

Bagaimana untuk Memanggil Acara RESIZE JQuery Hanya Apabila Saiz Semula Selesai?

Linda Hamilton
Lepaskan: 2024-12-27 00:41:08
asal
861 orang telah melayarinya

How to Call JQuery's RESIZE Event Only When Resizing Completes?

Menggunakan JQuery untuk Memanggil Acara RESIZE Apabila Saiz Semula Selesai

Apabila membangunkan aplikasi responsif, selalunya perlu menjejaki perubahan saiz tetingkap penyemak imbas untuk melaraskan UI sewajarnya. Walau bagaimanapun, memanggil fungsi ubah saiz secara berterusan semasa tetingkap diubah saiz secara manual boleh menyebabkan panggilan fungsi yang berlebihan.

Untuk menangani isu ini, JQuery menyediakan cara untuk memanggil fungsi ubah saiz hanya sekali selepas tetingkap selesai mengubah saiz.

Penyelesaian Menggunakan setTimeout()

Dalam Pendengar acara ubah saiz JQuery, gunakan fungsi setTimeout() untuk memanggil tindakan yang diingini dengan kelewatan yang ditentukan. Ini memastikan bahawa fungsi hanya dipanggil selepas saiz semula telah dihentikan.

$(window).resize(function() {
  if (this.resizeTO) clearTimeout(this.resizeTO);
  this.resizeTO = setTimeout(function() {
    $(this).trigger('resizeEnd');
  }, 300);
});

$(window).on('resizeEnd', function() {
  // Code to be executed after resizing is complete
});
Salin selepas log masuk

Dalam penyelesaian ini, peristiwa tersuai resizeEnd dicetuskan selepas kelewatan 300ms, menjamin bahawa ia berlaku hanya selepas saiz semula selesai.

Penyelesaian Lain Menggunakan setInterval()

Sebagai alternatif, anda boleh menggunakan setInterval() untuk terus menyemak sama ada saiz tetingkap telah berubah. Apabila saiz kekal stabil untuk tempoh tertentu, fungsi ubah saiz dipanggil.

var resizeInterval;
window.onresize = function() {
  if (resizeInterval) clearInterval(resizeInterval);
  resizeInterval = setInterval(function() {
    if (window.innerWidth == previousWidth && window.innerHeight == previousHeight) {
      clearInterval(resizeInterval);
      // Code to be executed after resizing is complete
    }
  }, 300);
  previousWidth = window.innerWidth;
  previousHeight = window.innerHeight;
};
Salin selepas log masuk

Dalam kedua-dua penyelesaian, nilai kelewatan boleh dilaraskan mengikut keperluan aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Acara RESIZE JQuery Hanya Apabila Saiz Semula Selesai?. 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