Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Установка overflow элемента (https://javascript.ru/forum/dom-window/8313-ustanovka-overflow-ehlementa.html)

gipper2006 19.03.2010 14:40

Установка overflow элемента
 
Здравствуйте. Возникла следующая странная проблема. Задача очень проста: нужно установить джаваскриптом свойство стиля блока overflow. Сейчас неважно в какое именно значение нужно установить данное свойство, проблема в другом. Дело в том, что в блоке присутствует флэш проигрыватель и если джаваскриптом поменять overflow, то проигрыватель перегружается. Естественно останавливается музыка и пропадает плейлист. Это нежелательное последствие наблюдается в FF. В IE и Opera подобного нет. Вот, как обойти данную проблему. Может есть какие нибудь решения?

milk3dfx 20.03.2010 17:32

Не знаю точно как обойти эту проблему, но мне кажется будет проще сделать скрипт без изменения overflow. Может сделать свою собственную полосу прокрутки.

subzey 20.03.2010 17:43

Сделать свою собственную полосу прокрутки без overflow?

gipper2006 20.03.2010 21:21

Дело в том что overflow: hidden устанавливается для элемента body, чтобы как раз таки убрать полосу прокрутки. Это нужно, при генерации окошка с сообщением, при этом затеняется интерфейс приложения. Затенение с окошком выполняется в отдельном слое, а полоса прокрутки убирается присваиванием overflow body. Это делается джаваскриптом при нажатии определенной кнопки в интерфейсе. Но в интерфейсе имеется встроенный флэш проигрыватель, который должен не останавливать воспроизведение при открытии окошка с сообщением. В FF как раз происходит наоборот (см. первый пост), в момент даже не присваивания, а изменения overflow, перегружается флэш. Я подозреваю, что при этом происходит перерендеривание документа, что и вызывает передергивание флэша... Служба поддержки FF пока молчит... Я понимаю, есть варианты переверстать шаблон, но хотелось бы попробовать средствами CSS+JavaScript.

subzey 21.03.2010 14:15

A document.documentElement.style.overflow = "hidden" не пробовали?

gipper2006 21.03.2010 23:21

Это не пробовал, но могу сказать, что "передёргивание" флэша происходит даже тогда, когда изменяешь данный стиль в firebug, в режиме отладки html...

milk3dfx 22.03.2010 07:39

Цитата:

Сделать свою собственную полосу прокрутки без overflow?
Конечно с использованием overflow, но без изменения свойства во время выполнения скрипта. Думаю что для этого случая делать собственную полосу не нужно.
А что если растянуть затемняющий слой растянуть на всю высоту документа, а для окошка задать position: fixed. в этом случае пользователь сможет скролить документ, а сообщение всегда будет на одном месте.
А вот еще одна идея, что если сделать так положить все содержимое body в div, а его в body. Для этого дива задать размеры и overflow например авто. И во время блокировки экрана накладывать по верх него слой. В этом случае этот див и его полосы прокрутки будут блокироваться. Не очень конечно, но как вариант=)


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