logo


home map contact


Если вы видите это сообщение - значит вы используете браузер Internet Explorer. Негативное отношение к этому браузеру сложилось не только у владельца данного ресурса, но и у подавляющего большинства людей, разбирающихся в web технологиях. Попробуйте установить один из браузеров по ссылке ниже, возможно вам он тоже понравится больше!

Opera, the fastest and most secure web browser     Spread Firefox Affiliate Button

div'ное окно

Сразу скажу, что речь пойдет не о надоедливых так называемых popup window, расшатывающих нашу нервную систему бестолковой рекламой. Вообще я сторонник того, чтобы на web странице происходили только события инициированные самим пользователем, т.е. никаких popup'ов, reload'ов, перенаправлений и т.д. Речь пойдет о тех случаях, когда использование дополнительных окон понастоящему оправдано, красиво и не вредит юзабилити. Например, окно входа в личный кабинет, окно настроек web приложения, окно оповещения и т.п. Во всех подобных случаях открытие еще одного окна браузера не элегантно, а вот слой div смотрится гораздо приятнее. А если его еще и открыть эффектно ... И здесь нам помогут JavaScript, CSS и HTML (куда ж без него).

div окно основы

Самое простое окно:



Это - div'ное окно!



Это - div'ное окно!



Нажали?! А как закрывать будем? Вот так вот! У нас в России всегда так - сначала нажмем на кнопку, а потом инструкцию до конца дочитываем. Ну ладно, refresh'тесь и продолжим.

Как уже стало ясно, неплохо было бы добавить возможность закрыть окошко:

Х


Это - div'ное окно!

Х


Это - div'ное окно!



Ну вот, это уже неплохо. Переходим к эффектному появлению.

разворачивающееся div окно

Объяснять не буду - кто захочет разберется.
var sStep = 16; 
var sTimeout = 15;
var sLeft = 160;
var sRight = 160;
var wObj;

function winOpen() {
	wObj.style.display = 'block'; 
	
	if (sLeft > 0) {
		sRight += sStep; 
		sLeft -= sStep; 		
		var rect = 'rect(auto, '+ sRight +'px, auto, '+ sLeft +'px)';		
		wObj.style.clip = rect;		
		setTimeout(winOpen, sTimeout); 
	}
}

function winClose() {
	if (sLeft < sRight) {
		sRight -= sStep; 
		sLeft += sStep; 
		var rect = 'rect(auto, '+ sRight +'px, auto, '+ sLeft +'px)';
		wObj.style.clip = rect;
		setTimeout(winClose, sTimeout);
	}
	else wObj.style.display = 'none';
}
Х


Это - div'ное окно!



плавно появляющееся div окно

function appear() {	
	if(op < 1) {
		op += 0.1;
		wObj.style.opacity = op;
		wObj.style.filter='alpha(opacity='+op*100+')';
		t = setTimeout('appear()', 30);
	}
}

Х


Это - div'ное окно!





Комментарии:



Johnny    08.07.08 в 17:09

Блин, мужики, клёвый сайт! Однозначно в закладки!





zerohold    12.07.08 в 22:07

Супер. Понравилось сразу





danko-13    04.08.08 в 23:57

Молодец! Хороший сайт! Тоже в закладки!





Гость    18.08.08 15:30

Да, можно ещё добавить информацию о том как сделать такое окно перетаскиваемым?




beast    08.09.08 19:38

на всякого мудреца довольно простоты - простота это классно Спасибо




Яков    10.09.08 23:03

\"Нажали?! А как закрывать будем? Вот так вот! У нас в России всегда так - сначала нажмем на кнопку, а потом инструкцию до конца дочитываем. Ну ладно, refresh\'тесь и продолжим.\" Точняк, так и есть ))) Спасибо, не нужно самому карячиться с кодом




virua    01.10.08 12:28

Бесспорно полезная статья. Особенно для тех, кто пока не имеет своих заготовок или для тех, кому быстро нужно сделать окно на DIV\'ах.




Карэн    10.11.08 16:41

Автор спасибо за хорошее изложение! Очень благодарен. В закладки)




TyTa    20.11.08 13:04

Спасибо... Благодаря вам я почистилсвои закладки. ОТ БАРАХЛА. Здесь нашел все что нужно!




AltEgo    22.11.08 13:15

Ребята, большое спасибо. На сайте собрана очень полезная информация, и главное она изложена в удобной и доступной для понимания форме




frost_asm    27.01.09 13:08

Красиво и просто. Спасибо)




Илья    19.02.09 20:35

НУ НАКОНЕЦТА НАШЁЛ КАК ЭТО ДЕЛАТЬ!!!! Спасибон ребята!




Рома    07.04.09 15:55

Ну объясните для особенных, куда вставлять последние два кода?




Alek Veritov    07.04.09 16:46

to Рома: посмотреть можно в исходном коде этой страницы




4KN    08.04.09 19:47

Аааарррр, я чайник!! Скажите,куда последние два вставлять?!




anonymous    25.04.09 14:03

А как на счет блокировки скролинга и div'ное окно по центру




Beagler    24.05.09 10:26

прикольно Вас копипастят - http://persheron.net/index.php?option=com_content&task=view&id=37&Itemid=30 и http://zmicode.ru/articals/javascript/div_window/




guest    30.08.09 01:19

Уж простите, но одно слово: АХ**НО!!!




Strike    20.09.09 17:23

Натыкался на сайт через гугл несколько раз, сегодня добавил в закладки. Респект автору.




Mike    28.10.09 20:20

могли бы с последним пунктом объяснить по подробнее, а то много времени на эти разборки потратил




Надежда    30.10.09 11:57

Парень, ты просто молодец! Другой бы сам разобрался и молча юзал бы. Редко встретишь такое понятное описание даже для девушек.
ПС: "Нажали?! А как закрывать будем? Вот так вот! У нас в России всегда так - сначала нажмем на кнопку, а потом инструкцию до конца дочитываем. Ну ладно, refresh'тесь и продолжим."
А на это я тоже попалась:) Дочитала до конца только после этой фразы.




Надежда    30.10.09 11:59

Только рекламу не нашла. Честно хотела кликнуть.




Kesha    06.11.09 19:23

Всем привет))сайт реально рулез!!!! Я долго искал эти слои)и вот, доступно и понятно))СПАСИБО!!! А на вашу ссылку я зашел;




sunchez    21.11.09 04:45

респектоззз!!! вы делаете большое дело! в закладки! только в закладки!




Ден    23.12.09 02:49

После пяти секунд просмотра - в закладках!!!
Молодец! Спасибо огрооооооооомное!!!!




Гомер)    09.02.10 00:50

Супер клей меня подери) супер сайт!!!!!!!!!! все самое полезное и главное всё работающее!!! буду советовать друзьям, посетить этот супер ресурс))))))




Новичек    09.02.10 11:50

- А как в ява примерах, запускать функции?? Без квери.




Сергея    16.02.10 20:11

Еще раз спасибо. Сейчас модно отрывать окно, а остальные окна как бы "заувалировать" В открытом окне вводится какая либо информация , потом окно закрывается и основное окно вновь становится "активным"
Если понятно о чем я спрашиваю, не могли бы Вы сказать в каком направление искать для реализации оного на своем сайте?
P.S Ваша капча уже год работает на моем сайте, лучшего решения чем у Вас не нашел.




Сергея    16.02.10 21:29

Нашел. Все решается с помощью библиотеки jquery

http://jqueryjs.googlecode.com/files/jquery-1.3.2.js

В сленговом виде это звучит так: "потушить свет при открытие окна". Можно очень разных эффектов создать интересных на основе этой библиотеки.
Но все равно спасибо. :-)




Кирилл    28.05.10 14:35

Спасибо! Сайт отличный! Помогите пожалуйста не могу понять как сделать чтобы закрывающий крестик появлялся на слое когда div открыт, а у меня он почему то на форме просто располагается, не так как показано тут в примере! Заранее спасибо!




Кирилл    28.05.10 14:42

Все разобрался сам! Еще раз говорю сайт отличный! ;D




Евгений    11.07.10 20:54

Просто и понятно) Спасибо за инфу...




ck    23.08.10 22:42

Нашел эту замечательную строчку как закрыть div, адаптировал под свои нужды и счаслив. В благодарность прошел по ссылкам от google. И буду так поступать каждое следующее посешения. За нужную информацию - принципиально. Спасибо автору....




www.zdami.ru    04.10.10 14:38

Огромное спасибо за статью. Конечно чуток времени потратил на плавное появление ))




George    22.10.10 16:25

В bookmark однозначно! и незабываем кликать по рекламе!




Яков    27.01.11 21:46

Самый классный сайт я когда либо видел!!! Чувак, у тебя большое будущее!!! Ты просто крут!!! Респект!!




Артур    16.06.11 18:13

Супер ребята, то что искал, отличная темка на 100




Роман    17.06.11 22:25

я тут наверно единственный кто не понял как это делается..
вставляю код в html файл и не работает (пробовал по разному) или как правильно его прикрепить ?? подскажите пожалуйста




Андрей    14.07.11 12:42

Интереснинько!!! а как добавить функцию чтобы при прокручивании страницы div'ное окощко оставалось на месте???=)




Vlad    24.08.11 11:58

Для того что бы при прокрутке оставалось на месте надо в position: fixed и всё)




Саша    15.09.11 14:36

доступно написано, добавь плиз как закрыть див клацнув мимо него.




Wedun    16.11.11 14:57

Ребят, а можно как-то сделать, чтобы можно было размер у окна менять после открытия мышкой. Очень хочется, а как сделать - не знаю:(




anonymous    20.11.11 16:22

спасибо, чувак!




Търло    29.12.11 02:46

спасиба! :смаил с языком:




Ниссо    16.02.12 15:29

Большое спасибо за Ваш труд!!!!
Вы спасли меня!




Владимир XXX    07.04.12 13:19

Спасибо! Очень помогло! Но было бы круче если использовался Jquery с еффектом fadeDown()!!!




Amir.    22.04.12 16:53

Красава,отдуши за помощь)))




nsd    24.04.12 15:18

Афтор коменты фейковые хватит писать. Код гавно кстати. Под ie тести и под линевые браузеры.






Если вам помогла или просто понравилась эта статья вы можете отблагодарить автора кликнув по рекламе. Спасибо!





комментировать:
прежде чем писать комментарий убедитесь, пожалуйста, что он не попадает в нижеследующие категории:
  • не стоит писать "я чайник, помогите ..." или "я начинающий, объясните ..." - уважайте себя! может вы и новичок, но ведь не тупой же! сами вполне способны во всем разобраться, тем более, что материал здесь изложен весьма доступно

  • не пишите вопросы типа "как мне сделать такую же менюху как наверху?", "куда вставлять этот код?", "как устроен интернет?" и т.д. - уважайте время автора!

  • комментарии вида "все, что здесь написано - бред" будут оставлены только если будут подписаны "я такой-то, разработчик сайта такого-то с посещаемостью 1000 хостов в день" и т.п. Если вы не согласны с чем-то - обоснуйте, напишите как правильно, а писать простые ругательства не надо, это не забор

прямые оскорбления кого бы то ни было будут удалятся!
здоровая критика приветствуется!



от кого:  

security picture