outerHeight (true) gibt einen falschen Wert an
Ich soll die Höhe des container-Elements, einschließlich Margen und Polster.
Wenn ich den Mauszeiger über das element in Chrom-Entwicklungs-tool, bekomme ich den Wert, den ich Suche, aber wenn ich die jQuery -$('element').outerHeight(true)
; bekomme ich einen viel kleineren Wert.
Element enthält ein jQuery-carousel (in einem Behälter mit position:relative
und Elemente position: absolute
), könnte das etwas zu tun mit es?
Vielen Dank im Voraus
Kommentar zu dem Problem
Long shot, aber ich denke, Sie müssen möglicherweise den
.outerHeight({margin: true});
InformationsquelleAutor der Frage Viktor | 2012-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe dieses Problem mehrere Male, und die beste Lösung, ohne die Verwendung von plugins oder widerspenstig setTimeout Funktionen, ist die Verwendung von Haken in den browser onLoad-Ereignis. Mit jQuery ist es geschafft und zwar so:
$(window).load(function(){ ...outerHeight logic goes here... });
Könnte dies völlig getrennt von Ihrem standard -
$(function(){ ...code... });
so dass all Ihre anderen ordnungsgemäß funktionierenden code nicht warten muss, bis jedes einzelne element der Seite geladen wurde.Warum dieses geschieht in Erster Linie:
Chrome hat eine andere rendering-Algorithmus als Firefox, welche Ursachen es auslösen das Ereignis "onLoad", bevor alle Elemente auf der Seite sind komplett gezeichnet/angezeigt und jQuery auswählen und abrufen Höhen.
setTimeout()
wird die meiste Zeit funktionieren, aber Sie wollen nicht, um eine Abhängigkeit entwickeln auf etwas, das so blind durch die Natur – wer weiß, in Zukunft wird dieser "Marotte" in Chrome behoben werden konnte! 🙂InformationsquelleAutor der Antwort Lasha
Ich hatte das gleiche problem. Bekomme ich die richtige Höhe im Chrom durch die Verwendung von setTimeout ein bisschen zu warten:
Ich hoffe, das hilft!
InformationsquelleAutor der Antwort Matt Reilly
Ich habe laufen in gleichen problem.
Firefox outerheight über die Konsole.anmelden: 430
Chrome outerheight über die Konsole.log: 477
Real outerheight (firebug-layout): 820
Nach dem öffnen von Firebug oder entfernen statusbar er setzt die entsprechenden Wert (820) in der Konsole.log (und damit der code funktioniert so wie es soll).
Wurde die Frage durch Bilder. Auch wenn Sie es läuft auf Dokument bereit, nicht alle Bilder geladen werden könnte noch, und daher sind die Berechnungen falsch.
Ich bin mit desandro-plugin und es hat mein Problem behoben.
https://github.com/desandro/imagesloaded
InformationsquelleAutor der Antwort Zoran P.
Ich denke, dass müssen Sie möglicherweise
Als pro hier:
InformationsquelleAutor der Antwort Elliot Bonneville
die eine, die so funktioniert, wie es sollte, war für mich ein kombinieren beider @Matt Reilly & @Lasha Antworten
ich verwendet, um den code in in
$(document).ready(function(){...});
aber es wird wanky manchmal so das oben funktioniert perfekt.InformationsquelleAutor der Antwort ctf0
Wenn das Fenster geladen wird und das Dokument bereit und Sie machten schwimmt und Sie immer noch dieses Problem, dann betrachten Sie für ein element mit der gleichen id. Seien Sie sicher, Sie werden immer das richtige element mit deinem jQuery-Selektor. Ich vergaß, ich hatte ein weiteres element im dom mit der gleichen id. Betrachten Sie mit jQuery die Hintergrundfarbe ändern, um zu überprüfen.
InformationsquelleAutor der Antwort user3338098
Versucht, jede einzelne dieser Lösungen. Schließlich öffnete der Inspektor und bemerkte, dass meine
p
hatte noch einemargin-top
. Wie immer danke Normalisieren...InformationsquelleAutor der Antwort corysimmons
Inneren versteckt, festen und absoluten Elemente werden nicht ordnungsgemäß bilanziert die outerHeight.
Versuchen die scrollHeight-Eigenschaft:
InformationsquelleAutor der Antwort Rob
Laut der docs,
outerHeight
nicht garantiert werden, genau, wenn:InformationsquelleAutor der Antwort Sam