Sie können verwenden .resize(), um jedes Mal abzurufen, wenn sich die Breite / Höhe tatsächlich ändert, wie folgt:
$(window).resize(function() {
//resize just happened, pixels changed
});
Sie können hier eine funktionierende Demo anzeigen. Sie übernimmt die neuen Höhen- / Breitenwerte und aktualisiert sie auf der Seite, damit Sie sie sehen können. Denken Sie daran, dass das Ereignis nicht wirklich beginnt oder endet , sondern nur "passiert", wenn eine Größenänderung auftritt. Es gibt nichts zu sagen, dass ein anderes Ereignis nicht passieren wird.
Bearbeiten: Nach Kommentaren scheint es so, als ob Sie so etwas wie ein "On-End" -Ereignis wollen. Die Lösung, die Sie gefunden haben, tut dies mit wenigen Ausnahmen (Sie können browserübergreifend nicht zwischen Mouse-up und Pause unterscheiden). das gleiche für ein Ende gegen eine Pause ). Sie können dieses Ereignis jedoch erstellen , um es ein bisschen sauberer zu machen:
$(window).resize(function() {
if(this.resizeTO) clearTimeout(this.resizeTO);
this.resizeTO = setTimeout(function() {
$(this).trigger('resizeEnd');
}, 500);
});
Sie könnten haben, dass dies irgendwo eine Basisdatei ist, was auch immer Sie tun möchten ... dann können Sie sich an das neue resizeEndEreignis binden, das Sie auslösen, wie folgt:
$(window).bind('resizeEnd', function() {
//do something, window hasn't changed size in 500ms
});
Sie können eine Arbeits Demo dieses Ansatzes sehen hier