/*
* 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);