2016-05-03 5 views
0

Ich überprüft dies und sogar andere Websites für diese Frage und ich schaute auch in die Dokumentation von jQuery, aber leider habe ich keine Lösung gefunden, die für mich gearbeitet hat, also bin ich einen neuen Thread öffnen ...jQuery - Holen Sie sich die Gesamthöhe der Seite

Ich muss die Gesamthöhe der Seite für eine andere Funktion abrufen, aber ich bin nicht in der Lage, es zu bekommen.

$(body).height(); erkennt eine Höhe von 1085px, aber die richtige Höhe ist 1774px. Auf anderen Seiten der Website sind die Werte natürlich anders, aber jQuery bekommt nie die richtige Höhe.

Ich habe versucht, die richtige Höhe mit den folgenden und sie alle scheiterten zu erhalten: $('#site-body').height();, $('#site-body').outerHeight();, $('#site-body').outerHeight(true);, $(document).height();

Wenn jemand von euch eine andere Art und Weise kennt oder die Höhe der Seite zu bekommen, wenn jemand eine Idee, warum das nicht funktioniert, lass es mich wissen.

Grüße, chwebo

+1

Wird die Funktion height() aufgerufen, wenn alle Seitenladungen abgeschlossen sind und der gesamte Inhalt generiert wurde? – Cranio

+0

Haben Sie versucht, $ (window) .height() – randominstanceOfLivingThing

+2

überprüfen Sie die Höhe in der document.ready? Wahrscheinlich gibt es etwas, das noch nicht gerendert wurde (zB Bilder oder etwas, das über Ajax geladen wurde), wenn Sie nach der Höhe suchen –

Antwort

0

ich in einer Scroll-Funktion die Funktion $('body').height(); Schnipsel enthalten und diese Werke Gut.

$(document).ready(function(){ 
    $(window).scroll(function(){ 
     var pageHeight = $('body').height(); 
    } 
} 

Ich habe keine Ahnung, warum dies geschieht, aber wenn jemand das gleiche Problem hat, versuchen Sie dies.

0

Sie müssen es auf diese Schnipsel finden innerhalb $(document).ready(function(){....}); platzieren:

$(document).ready(function(){  
 
    
 
     $("#docH").text($(document).height()); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<p>Document Height: <span id="docH"></span> px.</p>

+0

Alle meine J S-Codes sind immer in einer Ready-Funktion. Aber wie auch immer, danke für die Antwort :) – Sam

0

Aus der Dokumentation:

Browser bietet auch das Ladeereignis auf dem Fensterobjekt. Wenn dieses Ereignis ausgelöst wird, bedeutet dies, dass alle Elemente auf der Seite geladen wurden, einschließlich Bildern. Dieses Ereignis kann in jQuery beobachtet werden:

$(window).on("load", handler). 

In Fällen, in denen Code auf geladene Assets beruhen (zum Beispiel, wenn die Abmessungen eines Bildes benötigt werden), sollte der Code in einem Handler für die Last gelegt werden Ereignis stattdessen.

Verwandte Themen