Самописное модальное окно 
		
		
		
		Добрый день, скажу сразу, я УЧЮСЬ! :) 
	Написал некую белеберду, для модальных окон, принцип работы как в ФансиБокс Всё работает. Очень прошу прокоментировать творение, посоветуйте как грамотнее написать. Или всё таки моё творение безнадёжное, и лучше использовать ФансиБокс ? Пример ссылки: <a class="modal_link" rel="nofollow" href="#compare_content">Подробнее...</a> в Ссылке указывается ключевой класс "modal_link" и href="#АйдишкаКонтейнера который должен стать модалкой" Пример контейнера: <div id="compare_content" class="dnone"> Тут содержимое,которое должно стать модальным окном, изначально скрытое ДисплейНоне </div> 
//  <!--- Модальные ОКНА ЧЕРЕЗ ССЫЛКИ  --->
function initModalLink(){
var ajax_conteiner=jQuery('#ajax_conteiner'),	// определил главный контейнер куда помещается содержимое
	modal_link=jQuery('a.modal_link');	// определил клас ссылок которые работают как МодальноеОкно
modal_link.live('click',function(){
event.preventDefault();
var link=jQuery(this).attr('href').split('#')[1],	// Определяю ссылку, для того чтобы знать к какому Контейнеру обращался скрипт
	modal_title=jQuery(this).attr('title'),
	container=jQuery("#"+link+"").html(),	// Получаю содержимое контейнера
	close='<div class="close_modal"></div>',	// Кнопка закрытия МодалОкна
	overlay_b='<div id="overlay_black"></div>',	//Оверлей
	modal_box="<div id="+link+" class='modal'>"+container+"</div>",	 //Создаю контейнер с КСС стилистикой модалки и помещаю в него содержимое
	scrol = jQuery(document).scrollTop(),				 
	wind_hm = jQuery(window).height() ;
jQuery("#"+link+"").attr("id","modal_placeholder").html('');	// содержимое старого контейнера удаляю, и меняю его айдишник
	
ajax_conteiner.append(modal_box,overlay_b).find("#"+link+"").append(close);	//Вставляю содержимое Модалки в главный контейнер
var	box_hm=ajax_conteiner.find("#"+link+"").height(),	//Расчёты КСС 
	box_wm=ajax_conteiner.find("#"+link+"").width()/2,
	css_top=(wind_hm - box_hm)/2+scrol;
if(css_top < "0"){var css_top =scrol+50;}
ajax_conteiner.find("#"+link+"").css({"top":css_top, "margin-left":-box_wm}).addClass('show');	// Добавление КСС стилистики
jQuery(".close_modal, #overlay_black").click(function(){	//Закрытие Модального Окна
var box_ajax_conteiner=ajax_conteiner.find("#"+link+"").html();	//Получаю содержимое Модального Окна
jQuery('#modal_placeholder').html(box_ajax_conteiner).attr("id",""+link+"").find('.close_modal').remove();	//Вставляю содержимое на старое место и возвращаю старый айдишник и удаляю кнопку "Закрыть"
jQuery("#overlay_black, #ajax_conteiner .modal").fadeOut(200, function(){ jQuery(this).remove();})	// Плавно удаляю Оверлей и модалку
});	
});
}
 | 
	
		
 avantyrist, 
	сделали бы макет полностью запускаемым  | 
	
		
 Всмысле ? не понял Вас :( 
	 | 
	
		
 модальное окно на css 
		
		
		
		avantyrist, 
	может ну его js, даёшь css! макет это то что ниже. 
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
/* Контейнер */
.modal {
/* Слой перекрытия */
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5);
z-index: 10000;
/* Трансформации прозрачности при открытии  */
-webkit-transition: opacity 500ms ease-in;
-moz-transition: opacity 500ms ease-in;
transition: opacity 500ms ease-in;
/* Скрываем изначально */
opacity: 0;
pointer-events: none;
}
/* Показываем модальное окно */
.modal:target {
opacity: 1;
pointer-events: auto;
}
/* Содержание */
.modal > div {
width: 300px;
background: #ffffff;
position: relative;
margin: 10% auto;
/* По умолчанию минимизируем анимацию */
-webkit-animation: minimise 500ms linear;
/* Придаем хороший вид */
padding: 30px;
-moz-border-radius: 7px;
border-radius: 7px;
-webkit-box-shadow: 0 3px 20px rgba(0,0,0,0.9);
-moz-box-shadow: 0 3px 20px rgba(0,0,0,0.9);
box-shadow: 0 3px 20px rgba(0,0,0,0.9);
text-shadow: 0 1px 0 #fff;
}
/* Изменяем анимацию при открытии модального окна*/
.modal:target > div {
-webkit-animation-name: bounce;
}
.modal h2 {
font-size: 36px;
padding: 0 0 20px;
}
@-webkit-keyframes bounce {
  0% {
  	-webkit-transform: scale3d(0.1,0.1,1);
  	-webkit-box-shadow: 0 3px 20px rgba(0,0,0,0.9);
  }
  55% {
  	-webkit-transform: scale3d(1.08,1.08,1);
  	-webkit-box-shadow: 0 10px 20px rgba(0,0,0,0);
  }
  75% {
  	-webkit-transform: scale3d(0.95,0.95,1);
  	-webkit-box-shadow: 0 0 20px rgba(0,0,0,0.9);
  }
  100% {
  	-webkit-transform: scale3d(1,1,1);
  	-webkit-box-shadow: 0 3px 20px rgba(0,0,0,0.9);
  }
}
@-webkit-keyframes minimise {
  0% {
  	-webkit-transform: scale3d(1,1,1);
  }
  100% {
  	-webkit-transform: scale3d(0.1,0.1,1);
  }
}
/* Ссылка на кнопку Закрыть */
.modal a[href="#close"] {
position: absolute;
right: 0;
top: 0;
color: transparent;
}
/* Сбрасываем изменения */
.modal a[href="#close"]:focus {
outline: none;
}
/* Создаем кнопку Закрыть */
.modal a[href="#close"]:after {
content: 'X';
display: block;
/* Позиционируем */
position: absolute;
right: -10px;
top: -10px;
width: 20px;
padding: 1px 1px 1px 2px;
/* Стили */
text-decoration: none;
text-shadow: none;
text-align: center;
font-weight: bold;
background: #000;
color: #ffffff;
border: 3px solid #ffffff;
-moz-border-radius: 20px;
border-radius: 20px;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
box-shadow: 0 1px 3px rgba(0,0,0,0.5);
}
.modal a[href="#close"]:focus:after,
.modal a[href="#close"]:hover:after {
-webkit-transform: scale(1.1,1.1);
-moz-transform: scale(1.1,1.1);
}
.modal a[href="#close"]:focus:after {
outline: 0px solid #000;
}
/* Открываем модальное окно */
a.openModal {
}
a.openModal:hover,
a.openModal:focus {
}
.modal .modal_title {
	display: block;
	text-align: center;
	font-size: 22pt;
}
body{
   height: 1500px;
}
.button.openModal.up{
  display: block;
  margin-top: 400px;
}
  </style>
</head>
<body>
<a href="#modal" class="button openModal">Открыть модальное окно</a>
<a href="#modal2" class="button openModal up">Открыть модальное окно2</a>
<div id="modal" class="modal">
    <div>
       <div class="text">Любое содержимое модального окна</div>
        <a href="#close" title="Закрыть">Закрыть</a>
    </div>
</div>
<div id="modal2" class="modal">
    <div>
       <div class="text">Любое содержимое модального окна 2</div>
        <a href="#close" title="Закрыть">Закрыть</a>
    </div>
</div>
</body>
</html>
 | 
	
		
 JS нужен :) 
	Макет сделаю завтра :) На КСС вы круто накидали !!! :)  | 
	
		
 avantyrist, 
	css это гугля - а live устарело и с id у вас перебор  | 
	
		
  | 
	
		
 пока юзаю Live, старая верси jQuery скрипты надо подогнать 
	Всмысле с ID перебор ? Дело в том что в модальных окнах делаются разные манипуляции на Ajax. Вот и приходится сначала записать Содержимое контейнера, потом удалить его, потом вставить содержимое как модальное окно - сделать в нём манипуляции Ajax, а при закрытии вернуть его на место , а модальное окно удалить Или я не о том ? :(  | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 11:14. |