Универсальный скрипт попапов

Материал из GutenWeb Wiki

Перейти к: навигация, поиск

Содержание

Позиционирование попапов




// ОТ ВЕРХНЕЙ ГРАНИЦЫ ЭКРАНА
var topX = document.documentElement.scrollTop + 15;  // кроме webkit
var topX = (document.body.scrollTop || document.documentElement.scrollTop) + 15;
p2.css('top', topX+'px');



	
// ОТ МЫШКИ
var pageY = e.pageY;
$(".popup").css('top', pageY + 'px');





JS



	/* POPUP UNIVERSAL */
	
	
	// open
	$('.popupCall').click(function(e){
		
		$(this).parent().next().css('top', e.pageY-250).removeClass('hidden');
		
		$('.shadow').css({opacity:0,display:'block'}).fadeTo('fast', 0.5);
		
		return false;
		
	});

	
	// close
	$('.popupClose, .shadow').click(function(){
		
		$('.popupContent').addClass('hidden');
		$('.shadow').fadeOut();
		
		return false;
		
	});
	
	
	// close by ESC button
	$(document).keyup(function(e) {

		if (e.which == 27){
			$('.popupContent').addClass('hidden');
			$('.popapContent').add('.shadow').fadeOut();
		}
		
	});

	

CSS




.popupContent {
	position:absolute;
	left:50%;
	zoom:1;
	z-index:1000;
}

.popupContentInner {
	position:absolute;
	background:white;
	left:-400px;
	border:5px solid #ED1C24;
	
	width:700px;
	
	padding-top:45px;
	padding-left:50px;
	padding-right:50px;
	padding-bottom:45px;
}



.shadow {
	background:#000;
	height:100%;
	left:0;
	opacity:0.45;
	filter:alpha(opacity = 45);
	position:fixed;
	top:0;
	width:100%;
	z-index:500;
	display:none;
}



IE6 CSS


/* тень за попапом */

.shadow {
position:absolute;
height:expression(document.getElementById('main').clientHeight + 'px');
width: expression((documentElement.clientWidth||document.body.clientWidth) <980?"980px":'100%');
`}


/* имитация position:fixed */

.popup {
	_position:absolute;
	top: expression(
		eval(document.documentElement.scrollTop) + 100 + "px"
	);
	
}