Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2010, 00:42
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Плавное открытие окна.
Плавное открытие окна.
Здравствуйте все. Посмотрел вот на этом сайте (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>

-----------------------------------------
С уважением, Антон.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2010, 20:25
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Flashton,
Вашу просьбу сделал:

Стили:
Изменил:
clip: rect(200px 300px 200px 300px); /* добавил top и bottom */
<style type="text/css">
	#dialogWindow {
	 
	/* Настраиваем внешний вид слоя */
	    padding-top:200px;
	    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(200px 300px 200px 300px); /* свойство clip подробно рассмотрим ниже (оно ключевое) */
	}
 
	/* заголовок диалогового окна */
	 
	.dTitle {
	    font-weight: bold;
	    margin: 0;
	    padding: 5px;
	    background-color: #CCFFFF;
	}
	 
	/* текст диалогового окна */
	 
	.dBody {
	    text-align: center;
	    margin: 0;
	    padding: 10px 5px;
	}
	</style>

Скрипт:
var curtainStep = 10;
	var curtainTimeout = 15;

	var curtainLeft = 300;
	var curtainTop=200; //Добавил top
	var curtainRight = 300;
	var curtainWidth = 600;
	 var curtainBottom=200;//Добавил bottom
	function curtainOpen()
	{
	    if (curtainLeft>0)
	    {
		    curtainTop -= curtainStep; // усечение top
	        curtainRight += curtainStep; 
	        curtainLeft -= curtainStep; 
	         curtainBottom += curtainStep; // усечение bottom
//Добавил их в rect-->
	        var rect = 'rect('+curtainTop +'px, '+ curtainRight +'px, '+ curtainBottom +'px, '+ curtainLeft +'px)';
	         
	        document.getElementById("dialogWindow").style.clip = rect;
         
	        setTimeout(curtainOpen,curtainTimeout); //вызываем эту же функцию повторно через curtainTimeout миллисекунд
	    }
	}
	 
	function curtainClose()
	{
	    if (curtainLeft<curtainRight)
	    {
		    curtainTop += curtainStep; // сужение top
	        curtainRight -= curtainStep; 
	        curtainLeft += curtainStep; 
	        curtainBottom -= curtainStep; // сужение bottom
//Добавил их в rect-->
	        var rect = 'rect('+curtainTop +'px, '+ curtainRight +'px, '+ curtainBottom +'px, '+ curtainLeft +'px)';
	         
	        document.getElementById("dialogWindow").style.clip = rect;
	         
	        setTimeout(curtainClose,curtainTimeout); 
	    }
	}
	 
	function clipImg(on)
	{
	document.getElementById("clipEx1").style.clip=on?'rect(78px 146px 183px 84px)':'rect(auto,auto,auto,auto)';
	}
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2010, 20:29
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2010, 16:00
Новичок на форуме
Отправить личное сообщение для aimline Посмотреть профиль Найти все сообщения от aimline
 
Регистрация: 20.10.2010
Сообщений: 1

Можете подсказать что нужно добавлять чтобы в каждом окне открывался свой текст
пробовал:
<div id="dialogWindow"> 
    <div class="dTitle">Диалоговое окно2</div> 
    <p class="dBody">текст 2 .<br> 
    <button style="clear:both; margin-top:30px;" type="button" onClick="curtainClose()">Закрыть</button></p> 
</div> 
  
  
</head> 
<a href="javascript:curtainOpen()" class="strong">раскрывающееся окно2</a>

Почемуто открывает один и тотже текст
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие _blank окна onejsquestion Общие вопросы Javascript 3 16.09.2009 18:41
Открытие нового окна под размер изображения Не_Робот Events/DOM/Window 10 30.04.2009 01:16
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04
открытие нового окна javascript subaru Элементы интерфейса 2 14.05.2008 20:22
Открытие окна в зависимости от выбора в <option> partyzan Общие вопросы Javascript 0 10.04.2008 01:00