Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melaksanakan Tindakan Hanya Selepas Operasi Ubah Saiz Telah Selesai?

Bagaimana untuk Melaksanakan Tindakan Hanya Selepas Operasi Ubah Saiz Telah Selesai?

DDD
Lepaskan: 2024-11-08 05:40:02
asal
641 orang telah melayarinya

How to Execute Actions Only After a Resize Operation Has Finished?

Menunggu 'Tamat' Acara 'ubah saiz' untuk Pelaksanaan Tindakan Optimum

Dalam pengaturcaraan dipacu acara, adalah perkara biasa untuk mengendalikan saiz perubahan menggunakan acara 'saiz semula', biasanya diberikan kepada tetingkap atau elemen lain yang boleh diubah saiz. Walau bagaimanapun, apabila operasi mengubah saiz berlaku, peristiwa 'ubah saiz' dicetuskan beberapa kali semasa proses, membawa kepada pelaksanaan berlebihan pengendali acara anda.

Merakam 'Tamat' Acara 'ubah saiz'

Untuk menangani isu ini dan melaksanakan tindakan hanya apabila saiz semula telah selesai, kami boleh menggunakan teknik yang melibatkan penggunaan 'setTimeout()' dan 'clearTimeout()'.

Penyelesaian:

Buat fungsi, 'resizedw()', yang akan berfungsi sebagai pengendali acara anda untuk tindakan mengubah saiz.

function resizedw() {
  // Your action to be performed when resizing finishes
}
Salin selepas log masuk

Isytiharkan pembolehubah, 'doit', dan mulakannya sebagai 'null'. Pembolehubah ini akan menahan id tamat masa yang dikembalikan oleh 'setTimeout()'.

var doit = null;
Salin selepas log masuk

Lampirkan pendengar acara pada acara 'onresize' objek 'window'.

window.onresize = function() {
Salin selepas log masuk

Gunakan 'clearTimeout()' untuk membatalkan sebarang permintaan tamat masa belum selesai yang dikaitkan dengan pembolehubah 'doit'.

  clearTimeout(doit);
Salin selepas log masuk

Tugaskan hasil 'setTimeout()' kepada pembolehubah 'doit'. Ini akan menjadualkan pelaksanaan 'resizedw()' selepas kelewatan selama 100 milisaat.

  doit = setTimeout(resizedw, 100);
};
Salin selepas log masuk

Apabila operasi saiz semula tamat, pengendali acara 'onresize' akan digunakan tanpa mencetuskan 'resizedw()' serta-merta . Selepas kelewatan yang ditetapkan (100 milisaat), 'resizedw()' akan dilaksanakan, menandakan selesainya proses saiz semula.

Contoh Kod:

Kod berikut menunjukkan pelaksanaan pendekatan ini:

function resizedw() {
  // Your action to be performed when resizing finishes
  console.log('Resizing finished!');
}

var doit = null;
window.onresize = function() {
  clearTimeout(doit);
  doit = setTimeout(resizedw, 100);
};
Salin selepas log masuk

Penyelesaian ini mengendalikan acara 'saiz semula' dengan berkesan dengan menghalang tindakan yang berkaitan daripada dilaksanakan semasa proses mengubah saiz. Sebaliknya, tindakan dicetuskan hanya selepas operasi saiz semula selesai sepenuhnya.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tindakan Hanya Selepas Operasi Ubah Saiz Telah 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan