Ich habe eine Javascript schwere App, die Widgets wie Autocomplete-Dropdowns und Tabs usw. enthält. Wenn die Dropdown-Menüs ein- und ausgeblendet werden oder wenn Sie zwischen den Tabs wechseln, ändert sich manchmal die Höhe des Dokuments. Dies kann Ärger verursachen, wenn die Bildlaufleiste schnell angezeigt und ausgeblendet wird, weil sie die Seite verschiebt. Ich würde gerne feststellen, wenn eine Seite ihre Höhe ändert, also kann ich die Höhe bis zum Maximum so weit fixieren, dass, wenn die Bildlaufleiste erscheint, sie nur eine Sekunde später nicht verschwindet. Irgendwelche Vorschläge?
Update: onresize wird nicht funktionieren, da dies für Änderungen in der Größe des Ansichtsfensters / Fensters gilt - Ich möchte Änderungen in der Länge des Dokuments. Ich wusste nichts über die Watch-Funktion, sieht aus, als würde es zumindest für FF funktionieren, aber IE unterstützt es nicht.
Ich glaube, diese Frage wurde bereits im Stackoverflow beantwortet: Dokumenthöhenänderung erkennen
Grundsätzlich müssen Sie die aktuelle Dokumentenhöhe speichern und über einen Timeout-Aufruf nach einer Änderung suchen
Das zu überwachende Element ist document.body.clientHeight (oder in jquery $ (document) .height ())
Eine Idee wäre, die Methode watch () für die Eigenschaft clientHeight zu verwenden:
%Vor%Die von Ihnen angegebene Funktion wird immer dann ausgeführt, wenn sich die angegebene Eigenschaft ändert. Zu jedem Zeitpunkt können Sie die Methode "unwatch ()" verwenden, um den Vorgang anzuhalten.
Sie können das resize-Ereignis verwenden, um die Änderung der Fenstergröße mit jquery wie folgt abzufangen:
%Vor%Alternativ können Sie die Änderung im Dokument verfolgen (nicht getestet)
%Vor%Tags und Links javascript html css