модальное окно div'ом
Само окно уже вывел и сделал затемнение фона. но такая проблема, скролл работает на всю страницу, то есть можно прокрутить до самого низа, а модальное останется где-то вверху. Вариант с постоянным перемещением модального окна вниз не подходит, т.к. оно может быть большой высоты, и получается что если окно браузера маленькое то чтобы полностью его просмотреть придется увеличивать окно. Вот вконтакте смотрю как-то уменьшают диапазон скролла, чтобы не заскроллить за модальное окно. Скажите пожалуйста, как это сделать?
|
codingfighter,
На время всплытия окна запретите scroll для body document.body.style.overflow="hidden" |
Сделал. Но если наш всплывающий div не помещается в рабочую область, сролл не образуется. Как это исправить, то есть как сделать скролл только на наше модальное окно?
|
Цитата:
http://htmlbook.ru/css/overflow |
codingfighter,
Цитата:
|
Цитата:
|
ну откройте вконтакте, нажмите на просмотр фото, смотрите, скролл не исчезает полностью, он просто становится меньше. Теперь уменьшите высоту окна браузера. Можно скроллить. А здесь скролл вообще исчезает.
|
codingfighter,
Установите ширину затенения height:100%; width:100$; position:fixed; Тогда оно будет всегда в размер экрана |
Нет, вы не поняли. У меня это уже прописано. Экран когда маленький, а точнее высота рабочей области, то появляется скролл (вконтакте). Мне нужна такая же функция. А если поставить body overflow hidden то я так понял скролл окна вообще исчезает. А если поставить на элемент overflow scroll то скролл обазуется вокруг самого элемента.
|
хмм, а может поставить overflow scroll на затенение :)
но тогда скролл будет всегда отображаться... |
никто чтоли не понял что я имею в виду ? (
|
Цитата:
Установите ширину затенения height:100%; width:100%; min-height:400px; min-width:300px; position:fixed; Добавьте к стилю затенения -красным будет вам скролл при мелких экранах |
нет, не появился...
|
|
codingfighter,
:yes: Ccылку на рабочий пример дайте - я поправлю |
я уже устал.. вы поняли как этот скролл реализовать? просто объясните в 2-х словах, а я уже подкорректирую.
|
codingfighter,
Гы я тож устал - мож завтра все сложится... |
Ага, походу начинаю понимать.. это получается мне придется основной контент в один div ложить, а модальное под ним располагать? эх... значит изменение свойства body не катит. ладно, надо заставить себя поспать ((
|
codingfighter,
надо в body изменить высоту и ширину на ввысоту и ширину модального окна и возвращать по закрытии |
использовать медиа запросы css3,либо скриптом менять размеры,шрифты в зависимости от размеров экрана,а не придумывать велосипедоинтерфейсы
|
Dim@ можешь пожалуйста привести пример кода?
|
Если я правильно понял что вы хотите сделать то это глупости.)
Делайте как нормальные люди - в случае длинного текста скролл внутри появившегося окна. |
значит вконтакте делали ненормальные люди? вполне возможно...)
ну и как посоветуете сделать скролл внутри появившегося окна? |
codingfighter,
вы хотели пример кода вот он естественно вам придется много доработать из этого кода <html> <head> <meta charset='utf-8'> <title></title> </head> <style> body{ height:3000px } .fog{ positition:absolute; left:0px; top:0px; width:100%; height:100%; background-color:ffa; } .div{ background-color:f0f; } </style> <body> <div id='div' style='display:none'> <div class='fog'><div class='div'>Окно</div></div> </div> <input value='Открыть' onclick='Okno();if(ok == true){ok = false}else{ok = true}' type='button'> <script type='text/javascript'> ok = true; function Okno(){ if (ok == true){ document.getElementById('div').style.display = 'block'; document.body.style.height = 100 + 'px'; document.body.style.width = 100 + 'px'; } else{ document.getElementById('div').style.display = 'none'; document.body.style.height = 3000 + 'px'; document.body.style.width = 3000 + 'px'; } } </script> </body> </html> |
Это ничего не дало. Наверное у вас работает потому что пустое body
|
пост удален...
|
codingfighter,
да это для примера, естественно все делается по другому=) высота, ширина боди хранятся в переменных что-бы програмно получить высоту, ширину и т.п., ну а по открытию высота, ширина боди меняются на высоту, ширину дивов которые тоже хранятся в переменных и обратное действие также основано=) |
codingfighter, прошу смотреть пой пост в FAQ.
http://javascript.ru/forum/showpost.php?p=182267&postcount=6 подобный вопрос задают уже третий раз (если не больше) ЗЫ внутреннее линкование не работает. |
Цитата:
|
Часовой пояс GMT +3, время: 17:10. |