/* * jQuery liquid carousel v1.0 * http://www.nikolakis.net * * Copyright 2010, John Nikolakis * Free to use under the GPL license. * http://www.gnu.org/licenses/gpl.html * */ (function($){$.fn.liquidcarousel=function(options){var defaults={height:150,duration:100,hidearrows:true};var options=$.extend(defaults,options);return this.each(function(){var divobj=$(this);$(divobj).height(options.height);$(divobj).css('overflow','hidden');$('> .wrapper',divobj).height(options.height);$('> .wrapper',divobj).css('overflow','hidden');$('> .wrapper',divobj).css('float','left');$('> .wrapper > ul',divobj).height(options.height);$('> .wrapper > ul',divobj).css('float','left');$('> .wrapper > ul',divobj).css('margin','0');$('> .wrapper > ul',divobj).css('padding','0');$('> .wrapper > ul',divobj).css('display','block');$('> .wrapper > ul > li',divobj).height(options.height);$('> .wrapper > ul > li',divobj).css('display','block');$('> .wrapper > ul > li',divobj).css('float','left');var originalmarginright=parseInt($('> .wrapper > ul > li',divobj).css('marginRight'));var originalmarginleft=parseInt($('> .wrapper > ul > li',divobj).css('marginLeft'));var visiblelis=0;var totallis=$('> .wrapper > ul > li',this).length;var currentposition=0;var liwidth=$('> .wrapper > ul > li:first',divobj).outerWidth(true);var additionalmargin=0;var totalwidth=liwidth+additionalmargin;$(window).resize(function(e){var divwidth=$(divobj).width();var availablewidth=(divwidth-$('> .previous',divobj).outerWidth(true)-$('> .next',divobj).outerWidth(true));previousvisiblelis=visiblelis;visiblelis=Math.floor((availablewidth/liwidth));if(visiblelis .wrapper > ul > li',divobj).css('marginRight',originalmarginright+halfadditionalmargin);$('> .wrapper > ul > li',divobj).css('marginLeft',originalmarginleft+halfadditionalmargin);if(visiblelis>previousvisiblelis||totallis<=visiblelis){currentposition-=(visiblelis-previousvisiblelis);if(currentposition<0||totallis<=visiblelis){currentposition=0;}} $('> .wrapper > ul',divobj).css('marginLeft',-(currentposition*totalwidth));if(visiblelis>=totallis||((divwidth>=(totallis*liwidth))&&options.hidearrows)){if(options.hidearrows){$('> .previous',divobj).hide();$('> .next',divobj).hide();additionalmargin=Math.floor((divwidth-(totallis*liwidth))/totallis);halfadditionalmargin=Math.floor(additionalmargin/2);totalwidth=liwidth+additionalmargin;$('> .wrapper > ul > li',divobj).css('marginRight',originalmarginright+halfadditionalmargin);$('> .wrapper > ul > li',divobj).css('marginLeft',originalmarginleft+halfadditionalmargin);} $('> .wrapper',divobj).width(totallis*totalwidth);$('> ul',divobj).width(totallis*totalwidth);$('> .wrapper',divobj).css('marginLeft',0);currentposition=0;}else{$('> .previous',divobj).show();$('> .next',divobj).show();$('> .wrapper',divobj).width(visiblelis*totalwidth);$('> ul',divobj).width(visiblelis*totalwidth);}});$('> .next',divobj).click(function(){if(totallis<=visiblelis){currentposition=0;}else if((currentposition+(visiblelis*2))=totallis-1){currentposition=totallis-visiblelis;} $('> .wrapper > ul',divobj).stop();$('> .wrapper > ul',divobj).animate({'marginLeft':-(currentposition*totalwidth)},options.duration);});$('> .previous',divobj).click(function(){if((currentposition-visiblelis)>0){currentposition-=visiblelis;}else if((currentposition-(visiblelis*2))<=0){currentposition=0;} $('> .wrapper > ul',divobj).stop();$('> .wrapper > ul',divobj).animate({'marginLeft':-(currentposition*totalwidth)},options.duration);});$('> .next',divobj).dblclick(function(e){e.preventDefault();clearSelection();});$('> .previous',divobj).dblclick(function(e){e.preventDefault();clearSelection();});function clearSelection(){if(document.selection&&document.selection.empty){document.selection.empty();}else if(window.getSelection){var sel=window.getSelection();sel.removeAllRanges();}} $(window).resize();});};})(jQuery);