Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2011, 04:24
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Как проверить, есть ли скроллбар
Доброго времени, товарищи.
Такая проблема, для меня не тривиальная:
нужно проверить, появился ли скроллбар на сайте. Если есть полоса прокрутки, то надо выполнить определенное действие. Может быть, можно так: если ширина страницы больше 100%, то выполнить действие?
Нужно зафиксировать контент в браузере чтобы он не сдвигался в сторону при появлении полосы прокрутки. Может, есть другие решения?

в общем, грубо говоря человеческим языком, должно выглядеть так:
if('scrollbar' == true){
'do something';
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2011, 09:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

shaltay, может таки вёрстку нормальную сделать?
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2011, 11:42
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Да вот не могу я найти решения в верстке. Ни один форум пока не помог. Если сайт центрирован, то центр разный с прокруткой и без.
И все-таки, можно как-то детерминировать скроллбар?
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2011, 11:44
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от shaltay
Может, есть другие решения?
Сделать, чтобы скролбар был всегда.
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2011, 12:09
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Сообщение от Kolyaj Посмотреть сообщение
Сделать, чтобы скролбар был всегда.
Не хочу. Когда он пустой, как-то не красиво выглядит. Я думал, что никак нельзя сделать, пока не обратил внимание на прокрутку vkontakte.ru. Она там здорово сделана. ничего никуда не едет, она появляется и исчезает почти незаметно для глаз. И даже пропадает, когда открываются мелкие окошки поверх основной страницы. типа создания списков и тд.
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2011, 12:17
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Нашел в коде вконтакте вот такую штуку:
<body onresize="onBodyResize()" class="is_rtl">

Что бы это могло значить?
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2011, 12:35
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

if (document.body.scrollWidth > document.body.offsetWidth) ...;
Ответить с цитированием
  #8 (permalink)  
Старый 19.04.2011, 17:09
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

Сообщение от Matre Посмотреть сообщение
if (document.body.scrollWidth > document.body.offsetWidth) ...;
Сделал:
if (document.body.scrollWidth > document.body.offsetWidth){
alert('yo!!!');
}


ничего не произошло. Прокрутка есть.. Так же пробовал со scrollHeight.
Ответить с цитированием
  #9 (permalink)  
Старый 19.04.2011, 18:04
Аспирант
Отправить личное сообщение для goldserg Посмотреть профиль Найти все сообщения от goldserg
 
Регистрация: 08.02.2010
Сообщений: 37

Сталкивался с проблемой.

Для большинства браузеров делается скролинг (пусть пустой будет)
Для оперы.
if (opera) {
if (document.body.scrollHeight > window.innerHeight && (!document.body.style.paddingRight || document.body.style.paddingRight == scrollWidth+"px"))
document.body.style.paddingRight = "0px";
if (document.body.scrollHeight < window.innerHeight)
document.body.style.paddingRight = this.scrollWidth+"px";
}

что-то типа этого вешается на onresize
Ответить с цитированием
  #10 (permalink)  
Старый 20.04.2011, 14:56
Кандидат Javascript-наук
Отправить личное сообщение для shaltay Посмотреть профиль Найти все сообщения от shaltay
 
Регистрация: 28.02.2011
Сообщений: 134

неужели нет кроссбраузерного решения?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UI Dialog как победить двойной вызов??? xela1980 jQuery 3 19.12.2009 11:51
как проверить наличие элементов в объекте? гвоздик Общие вопросы Javascript 4 30.10.2009 11:33
Как проверить откуда пришел пользователь! toxiz77 Общие вопросы Javascript 2 27.10.2009 20:55
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09