cmoreira

carousel file with reload slider on resize

Mar 24th, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.    
  3.     var ls_curr_slider = [];
  4.  
  5.     //initial trigger
  6.     jQuery(document).ready(function($){
  7.  
  8.         ls_trigger_sliders();
  9.    
  10.     });
  11.  
  12.     //to load after an ajax
  13.     jQuery(document).ajaxSuccess(function($) {
  14.  
  15.         //ls_trigger_sliders();
  16.            
  17.     });
  18.  
  19.  
  20.  
  21.  
  22.     //to trigger the slider reload on orientation change.
  23.     jQuery(document).ready(function($){
  24.  
  25.  
  26.         jQuery(window).on('resize orientationchange', function($) {
  27.  
  28.  
  29.             clearTimeout(jQuery.data(this, 'resizeTimer'));
  30.             jQuery.data(this, 'resizeTimer', setTimeout(function() {
  31.                
  32.                 for (var i = 0; i < ls_curr_slider.length; i++) {
  33.  
  34.  
  35.                     if (typeof ls_curr_slider[i] != 'undefined') {
  36.                       ls_curr_slider[i].destroySlider();
  37.                       ls_curr_slider[i] = undefined;
  38.                      
  39.                     }
  40.  
  41.                 }
  42.  
  43.                 for (var key in lssliderparam) {   
  44.                     console.log(lssliderparam[key]['divid']);
  45.                     jQuery(lssliderparam[key]['divid']).css("opacity", 1).parent().prop( "style", null );
  46.  
  47.                 }
  48.  
  49.                 ls_trigger_sliders();
  50.  
  51.             }, 500));
  52.  
  53.         });
  54.  
  55.  
  56.     });
  57.  
  58.  
  59.     //function to trigger sliders
  60.     function ls_trigger_sliders() {
  61.  
  62.         for (var key in lssliderparam) {           
  63.  
  64.              var auto = (lssliderparam[key]['auto'] === 'true');
  65.              var pause = parseInt(lssliderparam[key]['pause']);
  66.              var autohover = (lssliderparam[key]['autohover'] === 'true');
  67.              var ticker = (lssliderparam[key]['ticker'] === 'true');
  68.              var tickerhover = (lssliderparam[key]['tickerhover'] === 'true');
  69.              var usecss = (lssliderparam[key]['usecss'] === 'true');
  70.              var autocontrols = (lssliderparam[key]['autocontrols'] === 'true');
  71.              var speed = parseInt(lssliderparam[key]['speed']);
  72.              var slidemargin = parseInt(lssliderparam[key]['slidemargin']);
  73.              var infiniteloop = (lssliderparam[key]['infiniteloop'] === 'true');
  74.              var pager = (lssliderparam[key]['pager'] === 'true');
  75.              var controls = (lssliderparam[key]['controls'] === 'true');
  76.              var slidewidth = parseFloat(lssliderparam[key]['slidewidth']);
  77.              var minslides = parseInt(lssliderparam[key]['minslides']);
  78.              var maxslides = parseInt(lssliderparam[key]['maxslides']);
  79.              var moveslides = parseInt(lssliderparam[key]['moveslides']);
  80.              var tmode = lssliderparam[key]['mode']; //options: 'horizontal', 'vertical', 'fade'
  81.  
  82.              
  83.  
  84.              //remove pager space by setting pager to false for ticker
  85.              if(ticker == true) {
  86.                 controls = false;
  87.              }
  88.  
  89.              var sliderDiv = jQuery(lssliderparam[key]['divid']);
  90.              //sometimes the div is passed wrong, so we built a temp fix here:
  91.              //if(sliderDiv==false) {
  92.                 //sliderDiv = $('.lshowcase-wrap-carousel-1');
  93.              //}
  94.  
  95.              //To improve responsive behaviour we force the limit of 1 slide in small viewports
  96.              if(maxslides==0 && ticker == false) {
  97.  
  98.                 var view_width = sliderDiv.parent().width();
  99.  
  100.                 if(controls == true ) { view_width = view_width-70; }
  101.  
  102.                  var slider_real = slidemargin + slidewidth;
  103.                  maxslides = Math.floor(view_width/slider_real);
  104.  
  105.                  //not to ignore the minimum value
  106.                  if(maxslides < minslides) {
  107.                     maxslides = minslides;
  108.                  }
  109.  
  110.                  if(moveslides==0) {
  111.                     moveslides = maxslides;
  112.                  }
  113.  
  114.              }
  115.              
  116.              if(maxslides==0 && ticker != false) {
  117.                 maxslides = 99;
  118.              }
  119.  
  120.  
  121.             //fix bug of 1 slider only infinite loop not working
  122.             //another solution could be adding the slidemargin to
  123.             //the slideWidth and align the images in the center
  124.             if (maxslides <= 1 && ticker == false) {
  125.                 //set margin to null
  126.                 slidemargin = 0;
  127.                 //make sure max slides is set to 1
  128.                 maxslides = 1;
  129.                 //make sure moveslides is set to 1
  130.                 moveSlides = 1;
  131.  
  132.             }
  133.  
  134.             sliderDiv.fadeIn('fast');
  135.            
  136.  
  137.             ls_curr_slider[key] = sliderDiv.bxSlider({             
  138.             auto: auto,    
  139.             pause: pause,
  140.             autoHover: autohover,
  141.             ticker: ticker,
  142.             tickerHover: tickerhover,
  143.             useCSS: usecss,
  144.             autoControls: autocontrols,
  145.             mode: tmode,
  146.             speed: speed,
  147.             slideMargin: slidemargin,
  148.             infiniteLoop: infiniteloop,
  149.             pager: pager,
  150.             controls: controls,
  151.             slideWidth: slidewidth,
  152.             minSlides: minslides,
  153.             maxSlides: maxslides,
  154.             moveSlides: moveslides,
  155.             autoDirection: 'next',
  156.             //captions: true,
  157.             //Make Slider Start again after controls get clicked (useful for auto slide)
  158.             /*
  159.             onSlideAfter: function() {
  160.                 ls_curr_slider[key].stopAuto();
  161.                 ls_curr_slider[key].startAuto();
  162.             },
  163.             */
  164.             onSliderLoad: function(currentIndex){
  165.  
  166.                 var sl = sliderDiv.parent().parent();              
  167.  
  168.                     var marg = '0 35px';
  169.  
  170.                     if(controls == false ) { marg = 'none'; }
  171.  
  172.                    sl.css({
  173.                         margin: marg
  174.                         });
  175.  
  176.                    sl.parent().css({
  177.                         maxWidth: sl.width()+80
  178.                         });
  179.  
  180.  
  181.                    //to align elements in the center in ticker
  182.                    /*
  183.                     We change the class, becasue the lshowcase-slide has a float:none!important that breaks
  184.                     the ticker code.
  185.                     Note: Seems safari doesn't trigger the ticker = true if there are other sliders non-ticker in the page
  186.                    */
  187.                  
  188.                    if(ticker == true) {
  189.  
  190.                     sliderheight = sliderDiv.parent().height();
  191.  
  192.                         if(sliderheight>0) {
  193.                             sliderDiv.find(".lshowcase-slide")
  194.                             .addClass('lshowcase-ticker-slide')
  195.                             .removeClass('lshowcase-slide')
  196.                             .css("height",sliderheight + 'px');
  197.                         }
  198.                    
  199.                    }
  200.  
  201.  
  202.                    /* Tooltip code *
  203.                    /* Fix for cloned elements. Run tooltip code only after the slider is loaded
  204.  
  205.                    var toshow = 'title';       
  206.  
  207.                     jQuery('.lshowcase-tooltip').tooltip({
  208.                     content: function () { return jQuery(this).attr(toshow) },
  209.                     close: function( event, ui ) {
  210.                             ui.tooltip.hover(
  211.                                 function () {
  212.                                     jQuery(this).stop(true).fadeTo(400, 1);
  213.                                     //.fadeIn("slow"); // doesn't work because of stop()
  214.                                 },
  215.                                 function () {
  216.                                     jQuery(this).fadeOut("400", function(){ jQuery(this).remove(); })
  217.                                 }
  218.                             );
  219.                           },
  220.                     position: {
  221.                     my: "center bottom-20",
  222.                     at: "center top",
  223.                     using: function( position, feedback ) {
  224.                     jQuery( this ).css( position );
  225.                     jQuery( "<div>" )
  226.                     .addClass( "lsarrow" )
  227.                     .addClass( feedback.vertical )
  228.                     .addClass( feedback.horizontal )
  229.                     .appendTo( this );
  230.                     }
  231.                     }
  232.                     });
  233.  
  234.                    
  235.  
  236.                    /* End tooltip code */
  237.                  
  238.             }
  239.  
  240.             });
  241.  
  242.         }
  243.  
  244.         //Use Custom Controls
  245.         if( jQuery('#ls-slider-prev').length )  
  246.  
  247.         {
  248.  
  249.             //custom controls
  250.             jQuery("#ls-slider-prev").click(function(){
  251.                 ls_curr_slider[0].goToPrevSlide();
  252.                 ls_curr_slider[1].goToPrevSlide();
  253.                 ls_curr_slider[0].stopAuto();
  254.                 ls_curr_slider[1].stopAuto();
  255.             });
  256.  
  257.             jQuery("#ls-slider-next").click(function(){
  258.                 ls_curr_slider[0].goToNextSlide();
  259.                 ls_curr_slider[1].goToNextSlide();
  260.                 ls_curr_slider[0].stopAuto();
  261.                 ls_curr_slider[1].stopAuto();
  262.             });
  263.  
  264.         }
  265.  
  266.        
  267.  
  268.  
  269.     }
Advertisement
Add Comment
Please, Sign In to add comment