327 votes

Comment puis-je vérifier si une barre de défilement n’est visible ?

Il est possible de vérifier la `` d’un div ?

Par exemple :

HTML

JQUERY

Parfois est court et contenu (aucune barre de défilement) et parfois long (barre de défilement visible).

416voto

Reigel Points 34008

un petit plugin pour ça.

(function($) {
    $.fn.hasScrollBar = function() {
        return this.get(0).scrollHeight > this.height();
    }
})(jQuery);

l'utiliser comme ceci,

$('#my_div1').hasScrollBar(); // returns true if there's a `vertical` scrollbar, false otherwise..

testé à travailler sur Firefox, Chrome, IE6,7,8

mais ne fonctionne pas correctement sur body sélecteur de balise

démo


Modifier

J'ai découvert que lorsque vous avez la barre de défilement horizontal qui provoque la barre de défilement verticale apparaîtra, cette fonction ne fonctionne pas....

J'ai trouvé une autre solution... clientHeight

return this.get(0).scrollHeight > this.get(0).clientHeight;

65voto

Sean Zheng Points 161

Peut-être une solution plus simple.

45voto

kpull1 Points 594

Je devrais changer une petite chose de ce Reigel dit :

HauteurInterne compte la hauteur du contrôle et son rembourrage haut et en bas

30voto

the4tress Points 49

Cela se développe sur la réponse de @Reigel. Elle renverra une réponse pour les barres de défilement horizontales ou verticales.

Exemple :

11voto

Boldewyn Points 29961

Vous avez besoin de element.scrollHeight. Comparez-le avec `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X