Utente:Samuele Papa/jquery-modal.js

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
/*
Autore: Samuele Papa
Nickname autore: Samuele Papa
Descrizione: Un plugin JQuery che permette la creazione di un modal. Necessita di CSS particolare.
Licenza: http://creativecommons.org/licenses/by-sa/3.0/deed.it Attribuzione - Condividi allo stesso modo 3.0 Unported (CC BY-SA 3.0)
*/
(function($){

	$.fn.modal = function(options){
		tdoptions = jQuery.extend ({
			bgcolor: "rgba(255,255,255,0.3)",
			outsideclose:1,
			animate:1
		}, options);
		
		var modalid;
		var open_space='<div class="open-space" style="width:100%;height:100%;background-color:'+tdoptions.bgcolor+';position:fixed;margin:0;padding:0;z-index:99999;top:0px;left:0px;right:0px;bottom:0px"></div>';
	return this.each(function(){

		modalid = $(this).attr('data-tdmodal-id');
		console.log(modalid);
		
		var tdmodal = function(){
			contenuto=$('#'+modalid).html();
			$('body').append(open_space);
			$('.open-space')
				.html('<div id="open-'+modalid+'" class="open-modal">'+contenuto+'</div>')
				.live('click',function(e){
					e.preventDefault();
			
					if(tdoptions.outsideclose==1){
						if($(e.target).hasClass('open-modal')||$(e.target).parents().hasClass('open-modal')){}else{
							closem();
						}
					}
			});
			positions($('.open-space #open-'+modalid));
			
		
			$('.open-modal .close').live('click',function(){
				closem();
			});
		};
		var positions = function(element) {
			element.css("top", ( $(window).height() - element.outerHeight() ) / 2 + "px");
			element.css("left", ( $(window).width() - element.outerWidth() ) / 2 + "px");
		};
		var closem = function(){
			if(tdoptions.animate==1){
				$('.open-space').animate({
					opacity:0
					},
					100,function(){$('.open-space').remove()});	
			}else{
			$('.open-space').remove();
			}
		};	
		tdmodal();
	});
	

	}
})(jQuery);