модальное окно 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, время: 09:29. |