tags:

views:

250

answers:

0

Hello,

I am learning about jQuery but still very new to Java Script. I'm working on a project which is using slider.js from moving boxes on css-tricks website . I need to be able to loop the slide so that when you get to the last image, it would keep rotating to the first image similar to this http://sorgalla.com/projects/jcarousel/examples/special_circular.html. Could someone please help?

Thank you in advance!

May

Here is the script:

$(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', "0px");

 var scroll = $('#slider .scroll').css('overflow', 'hidden');

 function returnToNormal(element) { }; 

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

   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
 var curPanel = 1;

 $("#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;
   }
 });

});