$(function() { var totalPanels = $(".scrollContainer").children().size(); var regWidth = $(".panel").css("width"); var regImgWidth = $(".panel img").css("width"); var regTitleSize = $(".panel h2").css("font-size"); var regParSize = $(".panel p").css("font-size"); var movingDistance = 300; var curWidth = 350; var curImgWidth = 326; var curTitleSize = "20px"; var curParSize = "15px"; var $panels = $('#slider .scrollContainer > div'); var $container = $('#slider .scrollContainer'); $panels.css({'float' : 'left','position' : 'relative'}); $("#slider").data("currentlyMoving", false); $container .css('width', ($panels[0].offsetWidth * $panels.length) + 100 ) .css('left', "-350px"); var scroll = $('#slider .scroll').css('overflow', 'hidden'); function returnToNormal(element) { $(element) .animate({ width: regWidth }) .find("img") .animate({ width: regImgWidth }) .end() .find("h2") .animate({ fontSize: regTitleSize }) .end() .find("p") .animate({ fontSize: regParSize }); }; function growBigger(element) { $(element) .animate({ width: curWidth }) .find("img") .animate({ width: curImgWidth }) .end() .find("h2") .animate({ fontSize: curTitleSize }) .end() .find("p") .animate({ fontSize: curParSize }); } //direction true = right, false = left function change(direction) { //if not at the first or last panel if((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= 1))) { return false; } //if not currently moving if (($("#slider").data("currentlyMoving") == false)) { $("#slider").data("currentlyMoving", true); var next = direction ? curPanel + 1 : curPanel - 1; var leftValue = $(".scrollContainer").css("left"); var movement = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance; $(".scrollContainer") .stop() .animate({ "left": movement }, function() { $("#slider").data("currentlyMoving", false); }); returnToNormal("#panel_"+curPanel); growBigger("#panel_"+next); curPanel = next; //remove all previous bound functions $("#panel_"+(curPanel+1)).unbind(); //go forward $("#panel_"+(curPanel+1)).click(function(){ change(true); }); //remove all previous bound functions $("#panel_"+(curPanel-1)).unbind(); //go back $("#panel_"+(curPanel-1)).click(function(){ change(false); }); //remove all previous bound functions $("#panel_"+curPanel).unbind(); } } // Set up "Current" panel and next and prev growBigger("#panel_3"); var curPanel = 3; $("#panel_"+(curPanel+1)).click(function(){ change(true); }); $("#panel_"+(curPanel-1)).click(function(){ change(false); }); //when the left/right arrows are clicked $(".right").click(function(){ change(true); }); $(".left").click(function(){ change(false); }); $(window).keydown(function(event){ switch (event.keyCode) { case 13: //enter $(".right").click(); break; case 32: //space $(".right").click(); break; case 37: //left arrow $(".left").click(); break; case 39: //right arrow $(".right").click(); break; } }); });