Ho bisogno di sapere se una barra di scorrimento verticale è apparsa o meno nella finestra del browser. È possibile utilizzare jQuery o in altro modo?Come sapere se le barre di scorrimento sono comparse nel browser (jQuery)?
risposta
Ti piace questa:
if (document.documentElement.scrollHeight === document.documentElement.clientHeight) {
//There is no vertical scrollbar
}
Questo non funziona in IE
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.
Sbagliato. L'altezza della finestra include elementi cromati come barre degli strumenti e menu. – SLaks
Ah sì, in realtà intendevo digitare l'altezza della vista, il mio male. – CharlesLeaf
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();
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. –
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 ... –
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). –