2010-05-26 7 views

ответ

7

Как это:

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

Это не работает в IE

+0

Полоса прокрутки может быть явно скрыта через 'body {overflow-y: hidden; } ', и в этом случае ваш код будет сообщать о ложном положительном ... –

+0

Это также не работает, когда само тело мало, но абсолютно позиционированный элемент частично перемещается за пределы области просмотра и заставляет UA показывать полосы прокрутки (высота/ширина тела в этом случае не изменяется, но есть определенные полосы прокрутки). –

1

Сравните высоту документа с высотой окна. Если это больше, возможно, есть полоса прокрутки, если вы не отключили ее.

+0

Неправильно. Высота окна включает хромированные элементы, такие как панели инструментов и меню. – SLaks

+0

Ах да, я действительно хотел набрать высоту видового экрана, мой плохой. – CharlesLeaf

4

Это старый пост, но я, наконец, получил код, который также работает на IE7. Надеюсь, это может помочь кому-то.

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

Это не работает для абсолютно позиционированных элементов, которые находятся за пределами области просмотра (вызывая полосы прокрутки), когда само тело мало. –

 Смежные вопросы

  • Нет связанных вопросов^_^