Плавное открытие окна.
Здравствуйте все. Посмотрел вот на этом сайте (
http://www.tigir.com/rollunrolllayer.htm) скрипт, который разворачивает и сворачивает окно, сделал страницу. Всё работает, но окно раздвигается только по горизонтали, а мне нужно отредактировать скрипт, так что бы окно одновременно раздвигалось и по вертикали и по горизонтали. То есть окно должно расширяться во все стороны, исправьте, пожалуйста, код, я сам пробовал, у меня не получилось.
Вот код страницы:
<head>
<style type="text/css">
#dialogWindow {
/* Настраиваем внешний вид слоя */
width: 600px; /* шириша слоя диалогового окна */
height: 400px; /* высота слоя диалогового окна */
background-color: #FFFFCC; /* цвет слоя диалогового окна */
border: 1px dotted gray; /* рамка слоя диалогового окна*/
/* Позиционируем слой по центру */
position: absolute; /* устанавливаем абсолютное позиционирование */
left: 30%; /* устанавливаем верхний левый угол слоя по горизонтали по центру страницы */
top: 42%; /* устанавливаем верхний левый угол слоя по вертикали по центру страницы */
margin-top: -150px; /* сдвигаем слой вверх на половину высоты слоя */
margin-left: -100px; /* сдвигаем слой влево на половину ширины слоя */
/* делаем слой невидимым */
clip: rect(auto 300px auto 300px); /* свойство clip подробно рассмотрим ниже (оно ключевое) */
}
/* заголовок диалогового окна */
.dTitle {
font-weight: bold;
margin: 0;
padding: 5px;
background-color: #CCFFFF;
}
/* текст диалогового окна */
.dBody {
text-align: center;
margin: 0;
padding: 10px 5px;
}
</style>
</style>
<script type="text/javascript">
var curtainStep = 10; //шаг - количество пикселей на которое будет сворачивать слой за один раз
var curtainTimeout = 15;//задержка перед последующей итерацией для эффекта плавности
//текущее количество обрезаемых пикселей слоя слева и справа
var curtainLeft = 300;
var curtainRight = 300;
var curtainWidth = 600;//ширина слоя
function curtainOpen()
{
if (curtainLeft>0)
{
curtainRight += curtainStep; //раскрываем область усечения справа на curtainStep пикселей
curtainLeft -= curtainStep; //раскрываем область усечения слева на curtainStep пикселей
var rect = 'rect(auto, '+ curtainRight +'px, auto, '+ curtainLeft +'px)';
document.getElementById("dialogWindow").style.clip = rect;
setTimeout(curtainOpen,curtainTimeout); //вызываем эту же функцию повторно через curtainTimeout миллисекунд
}
}
function curtainClose()
{
if (curtainLeft<curtainRight)//Пока левая граница области усечения не встретилась с правой
{
curtainRight -= curtainStep; //сужаем область усечения справа на curtainStep пикселей
curtainLeft += curtainStep; //сужаем область усечения слева на curtainStep пикселей
var rect = 'rect(auto, '+ curtainRight +'px, auto, '+ curtainLeft +'px)';
document.getElementById("dialogWindow").style.clip = rect;
setTimeout(curtainClose,curtainTimeout); //вызываем эту же функцию повторно через curtainTimeout миллисекунд
}
}
function clipImg(on)
{
document.getElementById("clipEx1").style.clip=on?'rect(78px 146px 183px 84px)':'rect(auto,auto,auto,auto)';
}
</script>
<div id="dialogWindow">
<div class="dTitle">Диалоговое окно</div>
<p class="dBody">Текст сообщения для пользователя( контент).<br>
<button style="clear:both; margin-top:30px;" type="button" onClick="curtainClose()">Закрыть окно</button></p>
</div>
</head>
<a href="javascript:curtainOpen()" class="strong">1</a>
-----------------------------------------
С уважением, Антон.