Мне нужно знать, появилась ли вертикальная полоса прокрутки или нет в окне браузера. Возможно ли использование jQuery или любым другим способом?Как узнать, появились ли полосы прокрутки в браузере (jQuery)?
ответ
Как это:
if (document.documentElement.scrollHeight === document.documentElement.clientHeight) {
//There is no vertical scrollbar
}
Это не работает в IE
Сравните высоту документа с высотой окна. Если это больше, возможно, есть полоса прокрутки, если вы не отключили ее.
Неправильно. Высота окна включает хромированные элементы, такие как панели инструментов и меню. – SLaks
Ах да, я действительно хотел набрать высоту видового экрана, мой плохой. – CharlesLeaf
Это старый пост, но я, наконец, получил код, который также работает на IE7. Надеюсь, это может помочь кому-то.
var hasScrollbar = $('body').outerHeight() > $(window).height();
Это не работает для абсолютно позиционированных элементов, которые находятся за пределами области просмотра (вызывая полосы прокрутки), когда само тело мало. –
Полоса прокрутки может быть явно скрыта через 'body {overflow-y: hidden; } ', и в этом случае ваш код будет сообщать о ложном положительном ... –
Это также не работает, когда само тело мало, но абсолютно позиционированный элемент частично перемещается за пределы области просмотра и заставляет UA показывать полосы прокрутки (высота/ширина тела в этом случае не изменяется, но есть определенные полосы прокрутки). –