/* * ntg_marquesina * written by Hrodrigu * http://www.newtenberg.com * 2010-11-17 * GPL (GPL-LICENSE.txt) licenses. * * Built for jQuery library * Depends jqueryui when you use effects * http://jquery.com */ /* * * markup example for $("#marquesina").ntg_marquesina(); * *
*/ (function($){ $.fn.ntg_marquesina = function(options){ // default configuration properties var defaults = { clickEvent: true, hoverEvent:false, duration : 2000, animation: 500 , currentClass: 'current' }; var options = $.extend(defaults, options); var current = 0; var total; this.each(function(){ var obj = this; total = $(obj).children('div').length; obj.salto_pagina = function(numero){ obj.busy = true; clearTimeout(obj.timeout); numero = numero % total; $(obj).children('div:eq(' + current +')').hide("fade",{},options.animation, function(){ $(obj).children('div:eq(' +numero + ')').show("fade",{},options.animation, function(){ obj.timeout = setTimeout(function(){ obj.siguiente_pagina(); }, options.duration); obj.setCurrent(numero); obj.clicked = false; obj.busy = false; }); }); current = numero; } obj.siguiente_pagina = function(){ this.salto_pagina(current + 1); } obj.anterior_pagina = function(){ this.salto_pagina(current - 1); } obj.setCurrent = function(numero){ $("ul.accesos-directos > li ",obj).removeClass(options.currentClass); $("ul.accesos-directos > li:eq(" + numero + ") ",obj).addClass(options.currentClass); } $(obj).children('div').hide(); $(obj).children('div:eq(0)').show("fade",{}, options.animation); $("ul.accesos-directos > li > a", obj).each(function(index){ if(options.hoverEvent){ $(this).hover(function(){ if(!obj.clicked && !obj.busy){ obj.salto_pagina(index); } return false; }); } if(options.clickEvent){ $(this).click(function(){ if(!obj.clicked && !obj.busy){ obj.clicked = true; obj.salto_pagina(index); } return false; }); } }); obj.timeout = setTimeout(function(){ obj.siguiente_pagina(); }, options.duration); }); }; })(jQuery);