/* * jQuery Quovolver v1.0 - http://sandbox.sebnitu.com/jquery/quovolver * * By Sebastian Nitu - Copyright 2009 - All rights reserved * */ (function($) { $.fn.quovolver = function(speed, delay) { /* Sets default values */ if (!speed) speed = 500; if (!delay) delay = 6000; // If "delay" is less than 4 times the "speed", it will break the effect // If that's the case, make "delay" exactly 4 times "speed" var quaSpd = (speed*4); if (quaSpd > (delay)) delay = quaSpd; // Create the variables needed var quote = $(this), firstQuo = $(this).filter(':first'), lastQuo = $(this).filter(':last'), wrapElem = '
'; // Wrap the quotes $(this).wrapAll(wrapElem); // Hide all the quotes, then show the first $(this).hide(); $(firstQuo).show(); // Set the hight of the wrapper $(this).parent().css({height: $(firstQuo).height()}); // Where the magic happens setInterval(function(){ // Set required hight and element in variables for animation if($(lastQuo).is(':visible')) { var nextElem = $(firstQuo); var wrapHeight = $(nextElem).height(); } else { var nextElem = $(quote).filter(':visible').next(); var wrapHeight = $(nextElem).height(); } // Fadeout the quote that is currently visible $(quote).filter(':visible').fadeOut(speed); // Set the wrapper to the hight of the next element, then fade that element in setTimeout(function() { $(quote).parent().animate({height: wrapHeight}, speed); }, speed); if($(lastQuo).is(':visible')) { setTimeout(function() { $(firstQuo).fadeIn(speed*2); }, speed*2); } else { setTimeout(function() { $(nextElem).fadeIn(speed); }, speed*2); } }, delay); }; })(jQuery);