Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Управление скроллбарами (https://javascript.ru/forum/misc/13931-upravlenie-skrollbarami.html)

Kepa 21.12.2010 09:25

Управление скроллбарами
 
Всем привет!

Суть вопроса - можно ли напрямую управлять отображением полос прокрутки в окне и фрэймах? Имеется ввиду отдельно горизонтальной и вертикальной, поэтому для фрэймов "scrolling = yes/no" не подходит. Или хотя бы узнать в скрипте "планирует" ли браузер отобразить тот или иной скроллбар (просто страница такой высоты, что в опере влезает без баров, а в остальных с барами, из-за которых верстка едет между фрэймами).

Пока все что я нашел это window.scrollbars.visible, которое работает только в ФФ, да к тому же всегда возвращает true, даже если баров нет.

Заранее спасибо :)

Aetae 21.12.2010 09:42

Самый простой вариант - не заморачиваться и делать скролбары видимыми, обрезая вёрсткой лишнее.

Kepa 21.12.2010 09:49

Я пока сделал scrolling = "yes" и в выравнивание добавил смещение вправо на 8 пикселей, но при этом еще всегда отображается горизонтальный бар который портит вид, хочется решить проблему как-то более универсально (:

ksa 21.12.2010 10:09

Цитата:

Сообщение от Kepa
хочется решить проблему как-то более универсально

Значит делай верстку независящую от скролбаров...

Kepa 21.12.2010 10:25

Там такая схема - верхний фрейм выполняет роль навигационной панели и в нем нет полос прокрутки, а в нижнем вертикальный бар либо есть (в ФФ, ИЕ), либо нет (в Опере, причем в ней тоже может быть, в зависимости от настроек), соответственно мне нужно знать будет ли полоса или нет...
Пока писал пришла идея как определить наличие бара, пойду тестировать (:

Kepa 21.12.2010 11:10

Все, решил проблему сравнением высоты фрэйма с высотой содержимого фрэйма, если последнее больше значит будет прокрутка, иначе влезет (:
if (document.getElementById("main_table").offsetHeight > document.body.clientHeight){
  elem.style.left = parseInt(elem.style.left) + 9 + 'px'
}


Часовой пояс GMT +3, время: 07:09.