Ver Mensaje Individual
  #31 (permalink)  
Antiguo 18/10/2013, 13:48
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: [APORTE] efectos sin jquery

Lightbox ----> compatibilidad : todos los navegadores modernos incluido ie8

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style media="screen" type="text/css">

* {
	margin: 0;
	padding: 0;
	border: none;
	position: relative;
}



html {
	width: 100%;
	height: 100%;
}



body {
	font-size: 100%;
	width: 100%;
	min-height: 100%;
	height: auto !important;
	background-color: rgb(121, 118, 118);
}



div.centrar {
	width: 40em;
	margin: 0 auto;
}



div.centrar > * {
	text-align: center;
	padding: 0.5em 0;
}



div.lbox {
	height: auto;
}



div.lbox > img {
	width: auto;
	max-height: 9.25em;
	max-width: 13.88em;
	margin: 0 1em;
	border: 0.21em solid rgb(158, 158, 158);
	cursor: pointer;
}



/* LIGHTBOX */

div#capaOpacidad {
	display: none;
	width: 100%;
	min-height: 100%;
	height: auto !important;
	background-color: #000;
	opacity: 0.9;
	filter: alpha(opacity=90);
	z-index: 100;
	position: fixed;
	top: 0;
	left: 0;
}



div#lightbox-casero {
	position: absolute;
	display: none;
	text-align: center;
	top: 0;
	left: 0;
	z-index: 102;
	width: 100%;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno {
	position: relative;
	background-color: rgb(255, 255, 255);
	width: 20.335em;
	height: 20.335em;
	margin: 0 auto;
	border-radius: 0.4em 0.4em;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno > div.lightbox-casero-contenedor {
	line-height: 0;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno > div.lightbox-casero-contenedor > img.imagenActual {
	width: auto;
	height: auto;
	top: 0.54em;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno > div.loading {
	position: absolute;
	top: 45%;
	left: 0;
	width: 100%;
	text-align: center;
	display: none;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno > span.bt-izq, div#lightbox-casero > div.lightbox-casero-contenedorExterno > span.bt-der {
	position: absolute;
	top: 47%;
	width: 2.14em;
	height: 2.05em;
	display: none;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno:hover > span.bt-izq {
	background: url('./lightbox_img/prev.png') no-repeat center;
	left: 0.5em;
	cursor: pointer;
}



div#lightbox-casero > div.lightbox-casero-contenedorExterno:hover > span.bt-der {
	background: url('./lightbox_img/next.png') no-repeat center;
	right: 0.5em;
	cursor: pointer;
}


/* LIGHTBOX */

</style>
<script type="text/javascript">

var lib = {

// ---------- VALORES QUE SE PUEDEN EDITAR --------------


tiempoExpandirImg : 600, // tiempo, en milisegundos, que tarda en expandirse el contenedor de la imagen
tiempoFade : 400, // tiempo, en milisegundos, que tarda en hacer el fadein de la imagen
tiempoFadeOcultar : 600, // tiempo, en milisegundos, que tarda en hacer el fadeout de la imagen
respetarResolucionPantalla : true, // adapta las imágenes a la resolución de pantalla (true/false)
agrupadas : true, // agrupa la imágenes para poder acceder a la imagen siguiente o anterior a la actual (true/false)
tamInicialBloque : 400, // dimensión, en px, desde la que empezará el escado del bloque que contiene a la imagen


// ---------- VALORES QUE SE PUEDEN EDITAR --------------



// =============== mini librería =================


Evento : function(elemento, nomevento, fnc) {

	if (elemento.addEventListener) {

		elemento.addEventListener(nomevento, fnc, false);

    	} else if (elemento.attachEvent) {

		elemento.attachEvent('on' + nomevento, fnc);

  	}
},





EventoEliminar : function(elemento, nomevento, fnc) {

	if (elemento.removeEventListener) {

		elemento.removeEventListener(nomevento, fnc, false);

    	} else if (elemento.detachEvent) {

		elemento.detachEvent('on' + nomevento, fnc);

  	}

},




cssComputado : function(obj, styleProp, NOunidades) {

	if (obj == null) { return 0; }

    if (window.getComputedStyle) {

        var valor = window.getComputedStyle(obj, null)[styleProp];

    } else if (obj.currentStyle) {

        var valor = (/(em)/.test(obj.currentStyle[styleProp])) ? parseInt(obj.currentStyle[styleProp], 10) * 16 : obj.currentStyle[styleProp];
    }

    return valor;
},




obtenerDiana : function(event) {

	return event.target || event.srcElement;
},




editarRegla : function(posRegla) {
var regla;

  	if (document.all) {

    		regla = document.styleSheets[0].rules;

  	} else {

    		regla = document.styleSheets[0].cssRules;

	}

	return regla[parseInt(posRegla, 10)];

},





tamanoFuente : function() {

var ancho = lib.obtenerAnchoNavegador() * 0.09;

var tamFuente = parseFloat(16 + (16 * ((ancho-100)/100)));

	return tamFuente;
},





tamanoFuenteBody : function(pos) {

var posRegla = pos;
var regla = lib.editarRegla(posRegla);
	
	regla.style.fontSize = lib.tamanoFuente() + 'px';
},





obtenerAnchoNavegador : function() {

	if (window.innerWidth) {

		return window.innerWidth;

	} else if (document.documentElement && document.documentElement.clientWidth != 0) {

		return document.documentElement.clientWidth;

	} else if (document.body) {

		return document.body.clientWidth;
	}
	
	return 0;
},



alturaScroll : function() {

	return self.pageYOffset || (document.documentElement.scrollTop + document.body.scrollTop);
},

// ===================== mini librería ======================


w_previousImg : 0,
h_previousImg : 0,
fncCerrar : function() {},
fncNavIzq : function() {},
fncNavDer : function() {},
h_res : ('innerHeight' in window) ? window.innerHeight : document.documentElement.clientHeight,
arrImagenes : []

};



lib.tamanoFuenteBody(2); // apunta al selector body


lib.Evento(window, 'load', cargar);



function cargar() {

	for (var i = 0, n_grupos = document.querySelectorAll('.lbox'); i < n_grupos.length; i++) {

		lib.arrImagenes[i] = [];

		for (var j = 0, img = n_grupos[i].getElementsByTagName('img'); j < img.length; j++) {

// precarga de imágenes

			lib.arrImagenes[i][j] = new Image();
			lib.arrImagenes[i][j].src = img[j].alt;

// precarga de imágenes


			(function(i, j){
				lib.Evento(img[j], 'click', function() {escalarImg(lib.arrImagenes[i][j], j, i)});
			})(i, j);

		}

	}

	lib.Evento(window, 'resize', function() { lib.tamanoFuenteBody(2); }); // apunta al selector body

}





function aumentarHorizontal(w_prevImg, w_imgActual, avance, lbCasero_contedorExt) {

	var agrandar_horizontal = w_prevImg + ((w_imgActual - w_prevImg) * avance);
	lbCasero_contedorExt.style.width = agrandar_horizontal + 'px';

}





function aumentarVertical(h_prevImg, h_imgActual, avance, posTop, lbCasero_contedorExt, lbCasero, posicionScroll) {

	var agrandar_vertical = h_prevImg + ((h_imgActual - h_prevImg) * avance);
	lbCasero_contedorExt.style.height = agrandar_vertical + 'px';
	var diferencia_vertical = agrandar_vertical - h_prevImg;
	var desplaza_vertical = (posTop - (diferencia_vertical/2) >= posicionScroll) ? posTop - (diferencia_vertical/2) : posicionScroll;
	lbCasero.style.top = parseFloat(desplaza_vertical/lib.tamanoFuente()).toFixed(3) + 'em';


}





function disminuirHorizontal(w_prevImg, w_imgActual, avance, lbCasero_contedorExt) {

	var disminuir_horizontal = w_prevImg - ((w_prevImg - w_imgActual) * avance);
	lbCasero_contedorExt.style.width = disminuir_horizontal + 'px';

}






function disminuirVertical(h_prevImg, h_imgActual, avance, posTop, lbCasero_contedorExt, lbCasero, posicionScroll) {

	var disminuir_vertical = h_prevImg - ((h_prevImg - h_imgActual) * avance);
	lbCasero_contedorExt.style.height = disminuir_vertical + 'px';
	var diferencia_vertical = h_prevImg - disminuir_vertical;
	var desplaza_vertical = (posTop + (diferencia_vertical/2) >= posicionScroll) ? posTop + (diferencia_vertical/2) : posicionScroll;
	lbCasero.style.top = parseFloat(desplaza_vertical/lib.tamanoFuente()).toFixed(3) + 'em';

}
continua en el siguiente post
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Última edición por IsaBelM; 23/04/2014 a las 14:34