Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie führe ich Aktionen erst aus, nachdem ein Größenänderungsvorgang abgeschlossen ist?

DDD
Freigeben: 2024-11-08 05:40:02
Original
550 Leute haben es durchsucht

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

Warten auf das „Ende“ des „Resize“-Ereignisses für eine optimale Aktionsausführung

Bei der ereignisgesteuerten Programmierung ist es üblich, die Größe zu handhaben Änderungen mithilfe des Ereignisses „resize“, das normalerweise einem Fenster oder einem anderen in der Größe veränderbaren Element zugewiesen wird. Wenn jedoch Größenänderungsvorgänge stattfinden, wird das „Resize“-Ereignis während des Prozesses mehrmals ausgelöst, was zu einer redundanten Ausführung Ihres Event-Handlers führt.

Erfassen des „Endes“ eines „Resize“-Ereignisses

Um dieses Problem zu beheben und eine Aktion erst dann auszuführen, wenn die Größenänderung abgeschlossen ist, können wir eine Technik anwenden, die die Verwendung von „setTimeout()“ und „clearTimeout()“ beinhaltet.

Lösung:

Erstellen Sie eine Funktion, „resizedw()“, die als Ereignishandler für die Größenänderungsaktion dient.

function resizedw() {
  // Your action to be performed when resizing finishes
}
Nach dem Login kopieren

Deklarieren Sie eine Variable, 'doit' und initialisieren Sie es als 'null'. Diese Variable enthält die von „setTimeout()“ zurückgegebene Timeout-ID.

var doit = null;
Nach dem Login kopieren

Hängen Sie den Ereignis-Listener an das „onresize“-Ereignis des „window“-Objekts an.

window.onresize = function() {
Nach dem Login kopieren

Verwenden Sie „clearTimeout()“, um alle ausstehenden Timeout-Anforderungen abzubrechen, die mit der Variablen „doit“ verknüpft sind.

  clearTimeout(doit);
Nach dem Login kopieren

Weisen Sie das Ergebnis von „setTimeout()“ der Variablen „doit“ zu. Dadurch wird die Ausführung von „resizedw()“ nach einer Verzögerung von 100 Millisekunden geplant.

  doit = setTimeout(resizedw, 100);
};
Nach dem Login kopieren

Wenn der Größenänderungsvorgang endet, wird der Ereignishandler „onresize“ aufgerufen, ohne „resizedw()“ sofort auszulösen . Nach der festgelegten Verzögerung (100 Millisekunden) wird „resizedw()“ ausgeführt und markiert den Abschluss des Größenänderungsprozesses.

Beispielcode:

Der folgende Code demonstriert die Implementierung dieses Ansatzes:

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);
};
Nach dem Login kopieren

Diese Lösung behandelt das Ereignis „Größe ändern“ effektiv, indem sie verhindert, dass die zugehörige Aktion während des Größenänderungsprozesses ausgeführt wird. Stattdessen wird die Aktion erst ausgelöst, nachdem der Größenänderungsvorgang vollständig abgeschlossen ist.

Das obige ist der detaillierte Inhalt vonWie führe ich Aktionen erst aus, nachdem ein Größenänderungsvorgang abgeschlossen ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!