PageSourceSearch

https://bestclub.com.ua/js/fxslider.js?v6

js bestclub.com.ua collected 2026-10-02 18:21:46 UTC 9,439 bytes, 255 lines download raw bytes

1/*
2 * $('#js-video').fxslider({
3 *			slideshow: true,                //Boolean: Animate slider automatically
4 *    		slideshowSpeed: 7000,           //Integer: Set the speed of the slideshow cycling, in milliseconds
5 *    		animationDuration: 600,         //Integer: Set the speed of animations, in milliseconds
6 *    		mousewheel: true,               //Boolean: Allow slider navigating via mousewheel*
7 *    		controlNav: true,               //Boolean: Create navigation for paging control        
8 *          directionNav: false,            //Boolean: Create navigation for previous/next navigation? (true/false)
9 *          prevText: "Prev",           //String: Set the text for the "Prev" directionNav item
10 *          nextText: "Next",               //String: Set the text for the "Next" directionNav item
11 *    		animationLoop: true,            //Boolean: Should the animation loop
12 *    		pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
13 *    		pauseOnHover: true,             //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
14 *    		start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
15 *    		before: function(){},           //Callback: function(slider) - Fires asynchronously with each slider animation
16 *    		after: function(){},            //Callback: function(slider) - Fires after each slider animation completes
17 *    		end: function(){}
18 * });
19 */
20(function ($) {
21  
22  $.fxslider = function(el, options) {
23    var slider = el;
24
25    // Initialize
26    slider.init = function() {
27      slider.vars = $.extend({}, $.fxslider.defaults, options);
28      slider.data('fxslider', true);
29      slider.container = $('.slides', slider);
30      slider.slides = $('.slides > li', slider);
31      slider.count = slider.slides.length;
32      slider.animating = false;
33      slider.currentSlide = 0;
34      slider.animatingTo = 0;
35    
36      // Slider Animation Initialize
37      slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%"}).hide().eq(slider.currentSlide).show();
38      //slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%"}).eq(slider.currentSlide).fadeIn(slider.vars.animationDuration);
39      
40      // Control Nav
41      if (slider.vars.controlNav) {
42        var controlNavScaffold = $('<ol class="control-nav"></ol>');
43        var j = 1;
44        for (var i = 0; i < slider.count; i++) {
45          controlNavScaffold.append('<li><span>' + j + '</span></li>');
46          j++;
47        }
48
49        slider.append(controlNavScaffold);
50        slider.controlNav = $('.control-nav li span', slider);
51
52        slider.controlNav.eq(slider.currentSlide).addClass('activ');
53
54        slider.controlNav.bind('click', function(event) {
55          event.preventDefault();
56          if (!$(this).hasClass('activ')) {
57            (slider.controlNav.index($(this)) > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
58            slider.flexAnimate(slider.controlNav.index($(this)), slider.vars.pauseOnAction);
59          }
60        });
61      }
62      
63      //Direction Nav
64      if (slider.vars.directionNav) {
65        var directionNavScaffold = $('<div class="direction-nav"><span class="prev">' + slider.vars.prevText + '</span><span class="next">' + slider.vars.nextText + '</span></div>');
66        
67        slider.append(directionNavScaffold);
68        slider.directionNav = $('.direction-nav span', slider);
69        
70        //Set initial disable styles if necessary
71        if (!slider.vars.animationLoop) {
72          if (slider.currentSlide == 0) {
73            slider.directionNav.filter('.prev').addClass('disabled');
74          } else if (slider.currentSlide == slider.count - 1) {
75            slider.directionNav.filter('.next').addClass('disabled');
76          }
77        }
78        
79        slider.directionNav.bind('click', function(event) {
80          event.preventDefault();
81          var target = ($(this).hasClass('next')) ? slider.getTarget('next') : slider.getTarget('prev');
82          
83          if (slider.canAdvance(target)) {
84            slider.flexAnimate(target, slider.vars.pauseOnAction);
85          }
86        });
87      }
88
89      // Mousewheel interaction
90      if (slider.vars.mousewheel) {
91        slider.mousewheelEvent = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";
92        slider.bind(slider.mousewheelEvent, function(e) {
93          e.preventDefault();
94          e = e ? e : window.event;
95          var wheelData = e.detail ? e.detail * -1 : e.wheelDelta / 40,
96              target = (wheelData < 0) ? slider.getTarget('next') : slider.getTarget('prev');
97          
98          if (slider.canAdvance(target)) {
99            slider.flexAnimate(target, slider.vars.pauseOnAction);
100          }
101        });
102      }
103      
104      //Slideshow Setup
105      if (slider.vars.slideshow) {
106        //pauseOnHover
107        if (slider.vars.pauseOnHover && slider.vars.slideshow) {
108          slider.hover(function() {
109            slider.pause();
110          }, function() {
111            slider.resume();
112          });
113        }
114
115        //Initialize animation
116        slider.animatedSlides = setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
117      }
118      
119      //start() Callback
120      slider.vars.start(slider);
121    }
122    
123    //Animation Actions
124    slider.flexAnimate = function(target, pause) {
125      if (!slider.animating) {
126        //Animating flag
127        slider.animating = true;
128
129        slider.animatingTo = target;
130        //before() animation Callback
131        slider.vars.before(slider);
132        
133        //Optional paramter to pause slider when making an anmiation call
134        if (pause) {
135          slider.pause();
136        }
137        
138        //Update controlNav   
139        if (slider.vars.controlNav) {
140          slider.controlNav.removeClass('activ').eq(target).addClass('activ');
141        }
142        
143        //Is the slider at either end
144        if (!slider.vars.animationLoop && slider.vars.directionNav) {
145          if (target == 0) {
146            slider.directionNav.removeClass('disabled').filter('.prev').addClass('disabled');
147          } else if (target == slider.count - 1) {
148            slider.directionNav.removeClass('disabled').filter('.next').addClass('disabled');
149          } else {
150            slider.directionNav.removeClass('disabled');
151          }
152        }        
153        
154        if (!slider.vars.animationLoop && target == slider.count - 1) {
155          slider.pause();
156          //end() of cycle Callback
157          slider.vars.end(slider);
158        }
159        
160        //Default to Fade
161        slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationDuration);
162        slider.slides.eq(target).fadeIn(slider.vars.animationDuration, function() {
163            slider.wrapup();
164        });
165        
166      }
167    }
168    
169    //Function to minify redundant animation actions
170    slider.wrapup = function() {
171      //console.log('wrapup');
172      slider.animating = false;
173      slider.currentSlide = slider.animatingTo;
174      //after() animation Callback
175      slider.vars.after(slider);
176    }
177    
178    //Automatic Slideshow
179    slider.animateSlides = function() {
180      if (!slider.animating) {
181        slider.flexAnimate(slider.getTarget("next"));
182      }
183    }
184    
185    //Automatic Slideshow Pause
186    slider.pause = function() {
187      //console.log('pause');
188      clearInterval(slider.animatedSlides);
189    }
190    
191    //Automatic Slideshow Start/Resume
192    slider.resume = function() {
193      //console.log('resume');
194      slider.animatedSlides = setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
195    }
196    
197    //Helper function for non-looping sliders
198    slider.canAdvance = function(target) {
199      if (!slider.vars.animationLoop) {
200        if (slider.currentSlide == 0 && target == slider.count - 1 && slider.direction != "next") {
201          return false;
202        } else if (slider.currentSlide == slider.count - 1 && target == 0 && slider.direction == "next") {
203          return false;
204        } else {
205          return true;
206        }
207      } else {
208        return true;
209      }  
210    }
211    
212    //Helper function to determine animation target
213    slider.getTarget = function(dir) {
214      slider.direction = dir;
215      if (dir == "next") {
216        return (slider.currentSlide == slider.count - 1) ? 0 : slider.currentSlide + 1;
217      } else {
218        return (slider.currentSlide == 0) ? slider.count - 1 : slider.currentSlide - 1;
219      }
220    }
221
222    //Initialize
223    slider.init();
224  }
225  
226  //Default Settings
227  $.fxslider.defaults = {
228    slideshow: true,              
229    slideshowSpeed: 7000,         
230    animationDuration: 600,       
231    mousewheel: false,
232    controlNav: true,
233    directionNav: false,           
234    prevText: "Prev",          
235    nextText: "Next",              
236    animationLoop: true,          
237    pauseOnAction: true,          
238    pauseOnHover: true,         
239    start: function(){},          
240    before: function(){},         
241    after: function(){},          
242    end: function(){}             
243  }
244  
245
246  $.fn.fxslider = function(options) {
247    return this.each(function() {
248      var _this = $(this);
249      if( (_this.find('.slides li').length != 1) && (_this.data('fxslider') != true) ){
250    	new $.fxslider(_this, options);
251      }
252    });
253  }  
254
255})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.