2010-05-26 16 views

risposta

7

Ti piace questa:

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

Questo non funziona in IE

+0

La barra di scorrimento potrebbe essere nascosta in modo esplicito tramite 'body {overflow-y: hidden; }, in tal caso il tuo codice riporterebbe un falso positivo ... –

+0

Questo non funziona anche quando il corpo è piccolo, ma un elemento posizionato in modo assoluto si è spostato parzialmente oltre il viewport e ha causato la visualizzazione delle barre di scorrimento (l'altezza/larghezza del corpo non cambia in questo caso, ma sono presenti sicuramente le barre di scorrimento). –

1

Confrontare l'altezza del documento con l'altezza della finestra. Se è di più c'è probabilmente una barra di scorrimento a meno che non la disabiliti.

+0

Sbagliato. L'altezza della finestra include elementi cromati come barre degli strumenti e menu. – SLaks

+0

Ah sì, in realtà intendevo digitare l'altezza della vista, il mio male. – CharlesLeaf

4

Questo è un vecchio post, ma alla fine ho ottenuto il codice che funziona anche su IE7. Spero che questo possa aiutare qualcuno.

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

Questo non funziona per elementi posizionati in modo assoluto che si trovano al di fuori del viewport (causando barre di scorrimento) quando il corpo stesso è piccolo. –

Problemi correlati