Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery, html manipulatoin (https://javascript.ru/forum/jquery/3277-jquery-html-manipulatoin.html)

qdrj 05.04.2009 14:11

Вложений: 1
делаю модальное окно, для этого создаю
<div class="overlay"></div>

.overlay {
background:#666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) repeat scroll 50% 50%;
opacity: 0.5; 
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50); /*filter for ie*/
height:100%;width:100%;
position: absolute;
left:0; top:0;
}

а сверху него уже вывожу модальное окно. так вот див с классом оверлей занимает 100% по высоте и ширине ЭКРАНА, а не 100% от body. поэтому мне нужно запретить пользователю прокручивать страничку, чтобы он не увидел незакрашенный низ страницы.

x-yuri 05.04.2009 14:21

а как насчет "height: 100%" -> "bottom: 0px"?

qdrj 05.04.2009 14:38

не работает.
по-моему тут надо как-то overflow:hidden у body делать. интересно, то что в файрфоксе прокручивать после overflow:hidden нельзя, а в ие и опере можно

x-yuri 05.04.2009 14:47

а ты запихни содержимое в div и ему назначай overflow: hidden;

Kolyaj 06.04.2009 12:59

Цитата:

Сообщение от qdrj
так вот див с классом оверлей занимает 100% по высоте и ширине ЭКРАНА, а не 100% от body

Надо просто сделать, чтобы оверлей занимал 100% страницы, а не экрана.

x-yuri 06.04.2009 13:12

Цитата:

Надо просто сделать, чтобы оверлей занимал 100% страницы, а не экрана
минутку, под экраном подразумевается клиентская область окна браузера? А то я ж о другом подумал

p.s. но лучше имхо чтобы возможности прокрутки не было, т.е. чтобы содержимое страницы не превышало размеры клиентской области

Kolyaj 06.04.2009 13:15

Цитата:

Сообщение от x-yuri
т.е. чтобы содержимое страницы не превышало размеры клиентской области

Это не всегда возможно, иногда нужно задизаблить обычную страницу.

x-yuri 06.04.2009 13:45

Цитата:

Это не всегда возможно, иногда нужно задизаблить обычную страницу
а нету кроссбраузерного способа это сделать? У меня была идея запихнуть содержимое страницы (пусть даже ее размеры превышают клиентскую область) в div и поставить ему height: 100%; overflow: hidden; Но в ie 6 не работает
Или именно поэтому "это не всегда возможно"

Kolyaj 06.04.2009 14:16

Цитата:

Сообщение от x-yuri
а нету кроссбраузерного способа это сделать?

Сделать что? Задизаблить? Нужно просто растянуть див на ширину/высоту документа, а не экрана.

qdrj 06.04.2009 14:32

я совместил два способа. т.е. создаю
<div id="box"></div>

.overlay {
background:#666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) repeat scroll 50% 50%;
opacity: 0.5; 
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);
width:100%;
position: absolute;
left:0; top: 0px; 
}

$("#box").addClass("overlay"); $("#box").height($(document).height());

и также
$("body").css("overflow","hidden");


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