Sie können .resize()
verwenden jedes Mal die Breite/Höhe tatsächlich ändert, wie dies zu erhalten:
$(window).resize(function() {
//resize just happened, pixels changed
});
You can view a working demo here, nimmt es die neuen Höhe/Breite Werte und aktualisiert sie auf der Seite für Sie zu sehen. Denken Sie daran, das Ereignis nicht wirklich Start oder Ende, es passiert einfach "passiert", wenn eine Größenänderung auftritt ... es gibt nichts zu sagen, ein anderes wird nicht passieren.
Edit: Nach Kommentaren es Sie wollen etwas wie ein „on-end“ Ereignis scheint, die Lösung, die Sie tut dies, die mit wenigen Ausnahmen (Sie können nicht zwischen einem Maus-up unterscheiden und eine Pause in einem Browser-übergreifenden Weg, das gleiche für eine Ende vs eine Pause). Sie können erstellen dieses Ereignis aber, um es ein bisschen sauberer, wie folgt aus:
$(window).resize(function() {
if(this.resizeTO) clearTimeout(this.resizeTO);
this.resizeTO = setTimeout(function() {
$(this).trigger('resizeEnd');
}, 500);
});
Sie könnte dies ist eine Basis-Datei irgendwo, was auch immer Sie tun wollen ... dann können Sie an, dass binden neue resizeEnd
Ereignis Sie Triggern, wie folgt aus:
$(window).bind('resizeEnd', function() {
//do something, window hasn't changed size in 500ms
});
You can see a working demo of this approach here
Es gibt eine jQuery und nicht-jQuery Lösung hier: https://github.com/louisremi/jque ry-smartresize – bradt
schöne Lösung für jquery-smartresize entprellt Ereignisse! – tetri