2010-05-26 2 views

Antwort

7

So:

if (document.documentElement.scrollHeight === document.documentElement.clientHeight) { 
    //There is no vertical scrollbar 
} 

Diese in IE funktioniert nicht

+0

Die Bildlaufleiste kann explizit über 'body {overflow-y: hiddened; } ', in diesem Fall würde Ihr Code ein falsch positives Ergebnis melden ... –

+0

Dies funktioniert auch nicht, wenn der Körper selbst klein ist, aber ein absolut positioniertes Element sich teilweise über den Darstellungsbereich hinaus bewegt und bewirkt hat, dass der UA Bildlaufleisten anzeigt (die Körperhöhe/-breite ändert sich in diesem Fall nicht, aber es sind definitiv Scrollbalken vorhanden). –

1

Vergleichen Sie die Dokumenthöhe mit der Fensterhöhe. Wenn es mehr ist, gibt es wahrscheinlich eine Bildlaufleiste, sofern Sie sie nicht deaktiviert haben.

+0

Falsch. Die Fensterhöhe enthält Chromelemente wie Symbolleisten und Menüs. – SLaks

+0

Ah ja, eigentlich wollte ich die Ansichtsfensterhöhe eingeben, mein Fehler. – CharlesLeaf

4

Dies ist eine alte Post, aber ich habe endlich den Code, der auch auf IE7 funktioniert. Hoffe, das kann jemandem helfen.

var hasScrollbar = $('body').outerHeight() > $(window).height(); 
+0

Dies funktioniert nicht für absolut positionierte Elemente außerhalb des Darstellungsbereichs (verursacht Bildlaufleisten), wenn der Körper selbst klein ist. –

Verwandte Themen