2016-06-04 9 views
1

In reinem Javascript und jQuery, Wie erkennt man, ob sich die Breite eines Elements geändert hat? Zum Beispiel, wenn die Breite eines Elements wie css Media Abfragen ändert, wenn Fenstergröße geändert wird, wie man es erkennt?Javascript - Wie erkennt man eine Elementbreitenänderung?

Ich habe versucht -

$(element).resize(function() {}); 

Aber das hat nicht funktioniert.

Ich habe SO Lösungen über Plug-Ins gefunden. Ja, sie funktionieren, aber jede reine Javascript und Jquery basierte Lösung?

+0

Vielleicht möchten Sie einen Blick auf diese Frage haben http://stackoverflow.com/questions/6492683/how-to-detect-divs-dimension-changed – Redu

+0

Ich denke auch, dass Sie dies tun können, indem Sie ein Mutations-Observer-Objekt instanziieren und es mit MutationObserverInit durch einige logische Argumente initialisieren, etwa wenn Sie Attributattribute auf True und sogar auf ein Filter-Array mit den Attributen achten möchten, die Sie beobachten möchten . https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver – Redu

+0

Je nach Größe der Fenstergröße können Sie einen Ereignis-Listener für das resize-Ereignis hinzufügen und Ihre Elemente "offsetWidth" überprüfen. https://developer.mozilla.org/en-US/docs/Web/Events/resize – Redu

Antwort

0

Ein Größenänderungsereignis sollte auf das Fensterobjekt angewendet werden.

Sie können wie folgt tun:

$(document).ready(function() { 
    $(window).on('resize', '', {'width':$('.resize-watch').width()}, onResizeWatch); 

}); 

function onResizeWatch(e) 
{ 
    console.log('old width', e.data.width); 
    console.log('new width', $('.resize-watch').width()); 
    $(window).off('resize'); 
    $(window).on('resize', '', {'width':$('.resize-watch').width()}, onResizeWatch); 
} 
Verwandte Themen