slick_rails 1.2.5.1 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,22 @@
1
1
  /*
2
- slick.js
3
- Author: Ken Wheeler
4
- Date: 03/23/14
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+
9
+ Author: Ken Wheeler
10
+ Website: http://kenwheeler.github.io
11
+ Date: 03/23/14
12
+ Docs: http://kenwheeler.github.io/slick
13
+ Repo: http://github.com/kenwheeler/slick
14
+ Issues: http://github.com/kenwheeler/slick/issues
15
+
5
16
  */
6
- /*global window, document, define, jQuery, setInterval, clearInterval */
17
+
18
+ /* global window, document, define, jQuery, setInterval, clearInterval */
19
+
7
20
  (function (factory) {
8
21
  'use strict';
9
22
  if (typeof define === 'function' && define.amd) {
@@ -14,19 +27,7 @@
14
27
 
15
28
  }(function ($) {
16
29
  'use strict';
17
- var Slick = window.Slick || {}, functionBinder;
18
-
19
- /************ Helpers ***********/
20
-
21
- // Function Binder
22
-
23
- functionBinder = function (fn, me) {
24
- return function () {
25
- return fn.apply(me, arguments);
26
- };
27
- };
28
-
29
- /********** End Helpers *********/
30
+ var Slick = window.Slick || {};
30
31
 
31
32
  Slick = (function () {
32
33
 
@@ -35,10 +36,14 @@
35
36
  var _ = this, responsiveSettings, breakpoint;
36
37
 
37
38
  _.defaults = {
39
+ accessibility: true,
38
40
  autoplay: false,
39
41
  autoplaySpeed: 3000,
42
+ cssEase: 'ease',
40
43
  dots: false,
41
44
  draggable: true,
45
+ fade: false,
46
+ easing: 'linear',
42
47
  arrows: true,
43
48
  infinite: true,
44
49
  onBeforeChange: null,
@@ -51,7 +56,8 @@
51
56
  speed: 300,
52
57
  swipe: true,
53
58
  touchMove: true,
54
- touchThreshold: 5
59
+ touchThreshold: 5,
60
+ vertical: false
55
61
  };
56
62
 
57
63
  _.initials = {
@@ -62,6 +68,7 @@
62
68
  direction : 1,
63
69
  dots : null,
64
70
  listWidth : null,
71
+ listHeight : null,
65
72
  loadIndex : 0,
66
73
  nextArrow : null,
67
74
  prevArrow : null,
@@ -81,9 +88,16 @@
81
88
 
82
89
  _.activeBreakpoint = null;
83
90
  _.animType = null;
91
+ _.animProp = null;
84
92
  _.breakpoints = [];
85
93
  _.breakpointSettings = [];
94
+ _.paused = false;
95
+ _.positionProp = null;
86
96
  _.slider = $(element);
97
+ _.slidesCache = null;
98
+ _.cssTransitions = false;
99
+ _.windowWidth = 0;
100
+ _.windowTimer = null;
87
101
 
88
102
  _.options = $.extend({}, _.defaults, settings);
89
103
 
@@ -106,19 +120,21 @@
106
120
  });
107
121
  }
108
122
 
109
- _.autoPlay = functionBinder(_.autoPlay,
123
+ _.autoPlay = $.proxy(_.autoPlay,
124
+ _);
125
+ _.autoPlayClear = $.proxy(_.autoPlayClear,
110
126
  _);
111
- _.autoPlayClear = functionBinder(_.autoPlayClear,
127
+ _.changeSlide = $.proxy(_.changeSlide,
112
128
  _);
113
- _.changeSlide = functionBinder(_.changeSlide,
129
+ _.setPosition = $.proxy(_.setPosition,
114
130
  _);
115
- _.setPosition = functionBinder(_.setPosition,
131
+ _.swipeHandler = $.proxy(_.swipeHandler,
116
132
  _);
117
- _.swipeHandler = functionBinder(_.swipeHandler,
133
+ _.dragHandler = $.proxy(_.dragHandler,
118
134
  _);
119
- _.dragHandler = functionBinder(_.dragHandler,
135
+ _.keyHandler = $.proxy(_.keyHandler,
120
136
  _);
121
- _.autoPlayIterator = functionBinder(_.autoPlayIterator,
137
+ _.autoPlayIterator = $.proxy(_.autoPlayIterator,
122
138
  _);
123
139
 
124
140
  _.init();
@@ -137,7 +153,7 @@
137
153
 
138
154
  $(_.slider).addClass('slick-initialized');
139
155
  _.buildOut();
140
- _.getAnimType();
156
+ _.setProps();
141
157
  _.startLoad();
142
158
  _.loadSlider();
143
159
  _.initializeEvents();
@@ -146,30 +162,119 @@
146
162
 
147
163
  };
148
164
 
149
- Slick.prototype.getAnimType = function () {
165
+ Slick.prototype.addSlide = function (markup) {
166
+
167
+ var _ = this;
168
+
169
+ _.unload();
170
+
171
+ $(markup).appendTo(_.slideTrack);
172
+
173
+ _.slides = _.slideTrack.children(this.options.slide);
174
+
175
+ _.slideTrack.children(this.options.slide).remove();
176
+
177
+ _.slideTrack.append(_.slides);
178
+
179
+ _.reinit();
180
+
181
+ };
182
+
183
+ Slick.prototype.removeSlide = function (index) {
184
+
185
+ var _ = this;
186
+
187
+ _.unload();
188
+
189
+ if(_.slideCount < 1) {
190
+ return false;
191
+ }
192
+
193
+ $(_.slideTrack.children(this.options.slide).get(index)).remove();
194
+
195
+ _.slides = _.slideTrack.children(this.options.slide);
196
+
197
+ _.slideTrack.children(this.options.slide).remove();
198
+
199
+ _.slideTrack.append(_.slides);
200
+
201
+ _.reinit();
202
+
203
+ };
204
+
205
+ Slick.prototype.filterSlides = function (filter) {
150
206
 
151
207
  var _ = this;
152
208
 
153
- if (document.body.style.MozTransform !== undefined) {
209
+ if(filter !== null) {
210
+
211
+ _.unload();
212
+
213
+ _.slideTrack.children(this.options.slide).remove();
214
+
215
+ _.slidesCache.filter(filter).appendTo(_.slideTrack);
216
+
217
+ _.reinit();
218
+
219
+ }
220
+
221
+ };
222
+
223
+ Slick.prototype.unfilterSlides = function () {
224
+
225
+ var _ = this;
154
226
 
155
- _.animType = 'MozTransform';
227
+ if(_.slidesCache !== null) {
156
228
 
157
- } else if (document.body.style.webkitTransform !==
158
- undefined) {
229
+ _.unload();
159
230
 
160
- _.animType = "webkitTransform";
231
+ _.slideTrack.children(this.options.slide).remove();
161
232
 
162
- } else if (document.body.style.msTransform !==
163
- undefined) {
233
+ _.slidesCache.appendTo(_.slideTrack);
164
234
 
165
- _.animType = "msTransform";
235
+ _.reinit();
166
236
 
167
237
  }
168
238
 
169
- if (_.animType !== null) {
239
+ };
170
240
 
171
- _.transformsEnabled = true;
241
+ Slick.prototype.applyTransition = function (slide) {
242
+
243
+ var _ = this, transition,origin;
244
+
245
+ transition = 'all ' + _.options.speed + 'ms ' + _.options.cssEase;
246
+ if (_.options.vertical === false) {
247
+ origin = (_.listWidth / 2) + ' 50%';
248
+ } else {
249
+ origin = '';
250
+ }
172
251
 
252
+ if (_.options.fade === false) {
253
+ _.slideTrack.css({
254
+ transition: transition,
255
+ transformOrigin: origin
256
+ });
257
+ } else {
258
+ $(_.slides.get(slide)).css({
259
+ transition: transition
260
+ });
261
+ }
262
+
263
+ };
264
+
265
+ Slick.prototype.disableTransition = function (slide) {
266
+
267
+ var _ = this;
268
+
269
+ if (_.options.fade === false) {
270
+ _.slideTrack.css({
271
+ transition: '',
272
+ transformOrigin: ''
273
+ });
274
+ } else {
275
+ $(_.slides.get(slide)).css({
276
+ transition: ''
277
+ });
173
278
  }
174
279
 
175
280
  };
@@ -179,13 +284,13 @@
179
284
  var _ = this;
180
285
 
181
286
  if (_.autoPlayTimer) {
182
-
183
287
  clearInterval(_.autoPlayTimer);
184
-
185
288
  }
186
289
 
187
- _.autoPlayTimer = setInterval(_.autoPlayIterator,
188
- _.options.autoplaySpeed);
290
+ if(_.slideCount > _.options.slidesToShow && _.paused !== true) {
291
+ _.autoPlayTimer = setInterval(_.autoPlayIterator,
292
+ _.options.autoplaySpeed);
293
+ }
189
294
 
190
295
  };
191
296
 
@@ -240,7 +345,7 @@
240
345
  var _ = this, breakpoint, targetBreakpoint;
241
346
 
242
347
  if (_.originalSettings.responsive && _.originalSettings
243
- .responsive.length > -1) {
348
+ .responsive.length > -1 && _.originalSettings.responsive !== null) {
244
349
 
245
350
  targetBreakpoint = null;
246
351
 
@@ -287,14 +392,14 @@
287
392
 
288
393
  var _ = this;
289
394
 
290
- if (_.options.arrows === true) {
395
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
291
396
 
292
397
  _.prevArrow.hide();
293
398
  _.nextArrow.hide();
294
399
 
295
400
  }
296
401
 
297
- if (_.options.dots === true) {
402
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
298
403
 
299
404
  _.dots.hide();
300
405
 
@@ -308,14 +413,14 @@
308
413
 
309
414
  var _ = this;
310
415
 
311
- if (_.options.arrows === true) {
416
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
312
417
 
313
418
  _.prevArrow.show();
314
419
  _.nextArrow.show();
315
420
 
316
421
  }
317
422
 
318
- if (_.options.dots === true) {
423
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
319
424
 
320
425
  _.dots.show();
321
426
 
@@ -335,10 +440,8 @@
335
440
 
336
441
  _.setPosition();
337
442
 
338
- _.slideTrack.animate({
443
+ _.slideTrack.css({
339
444
  opacity: 1
340
- }, _.options.speed, function () {
341
- _.setPosition();
342
445
  });
343
446
 
344
447
  if (document.readyState !== "complete") {
@@ -366,6 +469,7 @@
366
469
  var _ = this;
367
470
 
368
471
  _.listWidth = _.list.width();
472
+ _.listHeight = _.list.height();
369
473
  _.slideWidth = Math.ceil(_.listWidth / _.options
370
474
  .slidesToShow);
371
475
 
@@ -375,13 +479,13 @@
375
479
 
376
480
  var _ = this;
377
481
 
378
- if (_.options.arrows === true) {
482
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
379
483
 
380
484
  _.prevArrow = $(
381
- '<a href="javascript:void(0)">Previous</a>').appendTo(
485
+ '<a href="javascript:void(0)" tabIndex="-1">Previous</a>').appendTo(
382
486
  _.slider).addClass('slick-prev');
383
487
  _.nextArrow = $(
384
- '<a href="javascript:void(0)">Next</a>').appendTo(
488
+ '<a href="javascript:void(0)" tabIndex="-1">Next</a>').appendTo(
385
489
  _.slider).addClass('slick-next');
386
490
 
387
491
  if (_.options.infinite !== true) {
@@ -396,13 +500,13 @@
396
500
 
397
501
  var _ = this, i, dotString;
398
502
 
399
- if (_.options.dots === true) {
503
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
400
504
 
401
505
  dotString = '<ul class="slick-dots">';
402
506
 
403
507
  for (i = 1; i <= _.slideCount; i += 1) {
404
508
 
405
- dotString += '<li><a href="javascript:void(0)">' + i +
509
+ dotString += '<li><a href="javascript:void(0)" tabIndex="-1">' + i +
406
510
  '</a></li>';
407
511
 
408
512
  }
@@ -432,50 +536,66 @@
432
536
 
433
537
  var _ = this, i, slideIndex;
434
538
 
435
- if (_.options.infinite === true) {
539
+ if (_.options.infinite === true && _.options.fade === false) {
436
540
 
437
541
  slideIndex = null;
438
542
 
439
- for (i = _.slideCount; i > (_.slideCount -
440
- _.options.slidesToShow); i -= 1) {
441
- slideIndex = i - 1;
442
- $(_.slides[slideIndex]).clone().prependTo(
443
- _.slideTrack).addClass('slick-cloned');
444
- }
445
- for (i = 0; i < _.options.slidesToShow; i += 1) {
446
- slideIndex = i;
447
- $(_.slides[slideIndex]).clone().appendTo(
448
- _.slideTrack).addClass('slick-cloned');
543
+ if (_.slideCount > _.options.slidesToShow) {
544
+
545
+ for (i = _.slideCount; i > (_.slideCount -
546
+ _.options.slidesToShow); i -= 1) {
547
+ slideIndex = i - 1;
548
+ $(_.slides[slideIndex]).clone().prependTo(
549
+ _.slideTrack).addClass('slick-cloned');
550
+ }
551
+ for (i = 0; i < _.options.slidesToShow; i += 1) {
552
+ slideIndex = i;
553
+ $(_.slides[slideIndex]).clone().appendTo(
554
+ _.slideTrack).addClass('slick-cloned');
555
+ }
556
+
449
557
  }
450
558
 
451
559
  }
452
560
 
453
561
  };
454
562
 
455
- Slick.prototype.buildOut = function () {
563
+ Slick.prototype.setupPlaceholders = function () {
456
564
 
457
- var i, _ = this, placeholders;
565
+ var _ = this, i, placeholders;
566
+
567
+ if(_.options.fade === true || _.options.vertical === true) {
568
+ _.options.slidesToShow = 1;
569
+ _.options.slidesToScroll = 1;
570
+ }
458
571
 
459
- _.slides = $(_.options.slide +
460
- ':not(.slick-cloned)', _.slider).addClass(
461
- 'slick-slide');
462
- _.slideCount = _.slides.length;
463
572
  if ((_.slideCount % _.options.slidesToScroll) !==
464
- 0 && _.options.slidesToShow !== 1) {
573
+ 0 && _.slideCount > _.options.slidesToShow) {
465
574
 
466
575
  placeholders = Math.abs(_.options.slidesToScroll -
467
576
  (_.slideCount % _.options.slidesToScroll)
468
577
  );
469
578
  for (i = 0; i < placeholders; i += 1) {
470
- $('<div/>').appendTo(_.slider).addClass(
579
+ $('<div/>').appendTo(_.slideTrack).addClass(
471
580
  'slick-slide slick-placeholder');
472
581
  }
473
582
  _.slides = $('.slick-slide:not(.slick-cloned)',
474
583
  _.slider);
475
584
  _.slideCount = _.slides.length;
476
-
477
585
  }
478
586
 
587
+ };
588
+
589
+ Slick.prototype.buildOut = function () {
590
+
591
+ var _ = this;
592
+
593
+ _.slides = $(_.options.slide +
594
+ ':not(.slick-cloned)', _.slider).addClass(
595
+ 'slick-slide');
596
+ _.slideCount = _.slides.length;
597
+ _.slidesCache = _.slides;
598
+
479
599
  _.slider.addClass("slick-slider");
480
600
  _.slideTrack = _.slides.wrapAll(
481
601
  '<div class="slick-track"/>').parent();
@@ -483,12 +603,18 @@
483
603
  '<div class="slick-list"/>').parent();
484
604
  _.slideTrack.css('opacity', 0);
485
605
 
486
- _.buildArrows();
606
+ if(_.options.accessibility === true) {
607
+ _.list.prop('tabIndex',0);
608
+ }
487
609
 
488
- _.buildDots();
610
+ _.setupPlaceholders();
489
611
 
490
612
  _.setupInfinite();
491
613
 
614
+ _.buildArrows();
615
+
616
+ _.buildDots();
617
+
492
618
  _.setSlideClasses(0);
493
619
 
494
620
  if (_.options.draggable === true) {
@@ -498,41 +624,103 @@
498
624
  };
499
625
 
500
626
  Slick.prototype.setDimensions = function () {
627
+
501
628
  var _ = this;
502
- _.slideWidth = Math.ceil(_.listWidth / _.options
503
- .slidesToShow);
629
+
504
630
  _.list.find('.slick-slide').width(_.slideWidth);
505
- _.slideTrack.width(Math.ceil((_.slideWidth * _
506
- .slider.find('.slick-slide').length)));
631
+ if (_.options.vertical === false) {
632
+ _.slideTrack.width(Math.ceil((_.slideWidth * _
633
+ .slider.find('.slick-slide').length)));
634
+ } else {
635
+ _.list.height(_.slides.first().outerHeight());
636
+ _.slideTrack.height(Math.ceil((_.listHeight * _
637
+ .slider.find('.slick-slide').length)));
638
+ }
639
+
507
640
  };
508
641
 
509
642
  Slick.prototype.setPosition = function () {
510
- var _ = this, animProps = {}, targetLeft;
643
+
644
+ var _ = this, targetPosition;
645
+
511
646
  _.setValues();
512
647
  _.setDimensions();
513
648
 
649
+ _.slideOffset = 0;
650
+
514
651
  if (_.options.infinite === true) {
515
- _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
652
+ if(_.slideCount > _.options.slidesToShow) {
653
+ _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
654
+ }
516
655
  }
517
656
 
518
- targetLeft = ((_.currentSlide *
519
- _.slideWidth) * -1) + _.slideOffset;
657
+ if (_.options.fade === false) {
658
+ if (_.options.vertical === false) {
659
+ targetPosition = ((_.currentSlide *
660
+ _.slideWidth) * -1) + _.slideOffset;
661
+ } else {
662
+ targetPosition = ((_.currentSlide *
663
+ _.listHeight) * -1) - _.listHeight;
664
+ }
665
+ _.setCSS(targetPosition);
666
+ } else {
667
+ _.setFade();
668
+ }
669
+ };
520
670
 
521
- if (_.transformsEnabled === false) {
522
- _.slideTrack.css('left', targetLeft);
671
+ Slick.prototype.setProps = function () {
672
+
673
+ var _ = this;
674
+
675
+ _.positionProp = _.options.vertical === true ? 'top' : 'left';
676
+
677
+ if (_.positionProp === 'top') {
678
+ _.slider.addClass('slick-vertical');
523
679
  } else {
524
- animProps[_.animType] = "translate(" +
525
- targetLeft + "px, 0px)";
526
- _.slideTrack.css(animProps);
680
+ _.slider.removeClass('slick-vertical');
681
+ }
682
+
683
+ if ( document.body.style.WebkitTransition !== undefined ||
684
+ document.body.style.MozTransition !== undefined ||
685
+ document.body.style.msTransition !== undefined ) {
686
+ _.cssTransitions = true;
527
687
  }
528
688
 
689
+ if (document.body.style.MozTransform !== undefined) _.animType = 'MozTransform';
690
+ if (document.body.style.webkitTransform !== undefined) _.animType = 'webkitTransform';
691
+ if (document.body.style.msTransform !== undefined) _.animType = 'msTransform';
692
+
693
+ _.transformsEnabled = (_.animType !== null);
694
+
529
695
  };
530
696
 
531
- Slick.prototype.initializeEvents = function () {
697
+ Slick.prototype.setFade = function () {
698
+
699
+ var _ = this, targetLeft;
700
+
701
+ _.slides.each(function (index,element) {
702
+ targetLeft = (_.slideWidth * index) * -1;
703
+ $(element).css({
704
+ position: 'relative',
705
+ left: targetLeft,
706
+ top: 0,
707
+ zIndex: 800,
708
+ opacity: 0
709
+ });
710
+ });
711
+
712
+ $(_.slides.get(_.currentSlide)).css({
713
+ zIndex: 900,
714
+ opacity: 1
715
+ });
716
+
717
+ };
718
+
719
+ Slick.prototype.initArrowEvents = function () {
532
720
 
533
721
  var _ = this;
534
722
 
535
- if (_.options.arrows === true) {
723
+ if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
536
724
  _.prevArrow.on('click.slick', {
537
725
  message: 'previous'
538
726
  }, _.changeSlide);
@@ -541,12 +729,28 @@
541
729
  }, _.changeSlide);
542
730
  }
543
731
 
544
- if (_.options.dots === true) {
732
+ };
733
+
734
+ Slick.prototype.initDotEvents = function () {
735
+
736
+ var _ = this;
737
+
738
+ if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
545
739
  $('li a', _.dots).on('click.slick', {
546
740
  message: 'index'
547
741
  }, _.changeSlide);
548
742
  }
549
743
 
744
+ };
745
+
746
+ Slick.prototype.initializeEvents = function () {
747
+
748
+ var _ = this;
749
+
750
+ _.initArrowEvents();
751
+
752
+ _.initDotEvents();
753
+
550
754
  if (_.options.swipe === true) {
551
755
  _.list.on('touchstart.slick', {
552
756
  action: 'start',
@@ -560,6 +764,10 @@
560
764
  action: 'end',
561
765
  kind: 'touch'
562
766
  }, _.swipeHandler);
767
+ _.list.on('touchcancel.slick', {
768
+ action: 'end',
769
+ kind: 'touch'
770
+ }, _.swipeHandler);
563
771
  }
564
772
 
565
773
  if (_.options.draggable === true) {
@@ -576,7 +784,7 @@
576
784
  kind: 'drag'
577
785
  }, _.swipeHandler);
578
786
  _.list.on('mouseleave.slick', {
579
- action: 'cancel',
787
+ action: 'end',
580
788
  kind: 'drag'
581
789
  }, _.swipeHandler);
582
790
  }
@@ -586,13 +794,24 @@
586
794
  _.list.on('mouseleave.slick', _.autoPlay);
587
795
  }
588
796
 
589
- $(window).on('orientationchange.slick', _.setPosition);
797
+ _.list.on('keydown.slick', _.keyHandler);
590
798
 
591
- $(window).on('resize.slick', function () {
799
+ $(window).on('orientationchange.slick', function(){
592
800
  _.checkResponsive();
593
801
  _.setPosition();
594
802
  });
595
803
 
804
+ $(window).resize(function () {
805
+ if ($(window).width !== _.windowWidth) {
806
+ clearTimeout(_.windowDelay);
807
+ _.windowDelay = window.setTimeout(function () {
808
+ _.windowWidth = $(window).width();
809
+ _.checkResponsive();
810
+ _.setPosition();
811
+ }, 50);
812
+ }
813
+ });
814
+
596
815
  $(window).on('load.slick', _.setPosition);
597
816
 
598
817
  };
@@ -637,40 +856,128 @@
637
856
 
638
857
  };
639
858
 
859
+ Slick.prototype.updateArrows = function () {
860
+
861
+ var _ = this;
862
+
863
+ if (_.options.arrows === true && _.options.infinite !==
864
+ true && _.slideCount > _.options.slidesToShow) {
865
+ if (_.currentSlide === 0) {
866
+ _.prevArrow.addClass('slick-disabled');
867
+ _.nextArrow.removeClass('slick-disabled');
868
+ } else if (_.currentSlide >= (_.slideCount /
869
+ _.options.slidesToScroll * _.options.slidesToShow
870
+ ) - _.options.slidesToScroll) {
871
+ _.nextArrow.addClass('slick-disabled');
872
+ _.prevArrow.removeClass('slick-disabled');
873
+ } else {
874
+ _.prevArrow.removeClass('slick-disabled');
875
+ _.nextArrow.removeClass('slick-disabled');
876
+ }
877
+ }
878
+
879
+ };
880
+
881
+ Slick.prototype.fadeSlide = function (slideIndex, callback) {
882
+
883
+ var _ = this;
884
+
885
+ if(_.cssTransitions === false) {
886
+
887
+ $(_.slides.get(slideIndex)).css({zIndex: 1000});
888
+
889
+ $(_.slides.get(slideIndex)).animate({
890
+ opacity: 1
891
+ }, _.options.speed,_.options.easing, callback);
892
+
893
+ } else {
894
+
895
+ _.applyTransition(slideIndex);
896
+
897
+ $(_.slides.get(slideIndex)).css({
898
+ opacity: 1,
899
+ zIndex: 1000
900
+ });
901
+
902
+ if(callback) {
903
+ setTimeout(function(){
904
+
905
+ _.disableTransition(slideIndex);
906
+
907
+ callback.call();
908
+ }, _.options.speed);
909
+ }
910
+
911
+ }
912
+
913
+ };
914
+
640
915
  Slick.prototype.animateSlide = function (targetLeft,
641
916
  callback) {
642
917
 
643
918
  var animProps = {}, _ = this;
644
919
 
645
- if (_.options.onBeforeChange !== null) {
646
- _.options.onBeforeChange.call();
647
- }
648
-
649
920
  if (_.transformsEnabled === false) {
650
-
651
- _.slideTrack.animate({
652
- left: targetLeft
653
- }, _.options.speed, callback);
921
+ if (_.options.vertical === false) {
922
+ _.slideTrack.animate({
923
+ left: targetLeft
924
+ }, _.options.speed,_.options.easing, callback);
925
+ } else {
926
+ _.slideTrack.animate({
927
+ top: targetLeft
928
+ }, _.options.speed,_.options.easing, callback);
929
+ }
654
930
 
655
931
  } else {
656
932
 
657
- $({
658
- animStart: _.currentLeft
659
- }).animate({
660
- animStart: targetLeft
661
- }, {
662
- duration: _.options.speed,
663
- step: function (now) {
664
- animProps[_.animType] = "translate(" +
665
- now + "px, 0px)";
666
- _.slideTrack.css(animProps);
667
- },
668
- complete: function () {
669
- if (callback) {
670
- callback.call();
933
+ if(_.cssTransitions === false) {
934
+
935
+ $({
936
+ animStart: _.currentLeft
937
+ }).animate({
938
+ animStart: targetLeft
939
+ }, {
940
+ duration: _.options.speed,
941
+ easing: _.options.easing,
942
+ step: function (now) {
943
+ if (_.options.vertical === false) {
944
+ animProps[_.animType] = "translate(" +
945
+ now + "px, 0px)";
946
+ _.slideTrack.css(animProps);
947
+ } else {
948
+ animProps[_.animType] = "translate(0px," +
949
+ now + "px,0px)";
950
+ _.slideTrack.css(animProps);
951
+ }
952
+ },
953
+ complete: function () {
954
+ if (callback) {
955
+ callback.call();
956
+ }
671
957
  }
958
+ });
959
+
960
+ } else {
961
+
962
+ _.applyTransition();
963
+
964
+ if (_.options.vertical === false) {
965
+ animProps[_.animType] = "translate3d(" + targetLeft + "px, 0px, 0px)";
966
+ } else {
967
+ animProps[_.animType] = "translate3d(0px," + targetLeft + "px, 0px)";
968
+ }
969
+ _.slideTrack.css(animProps);
970
+
971
+ if(callback) {
972
+ setTimeout(function(){
973
+
974
+ _.disableTransition();
975
+
976
+ callback.call();
977
+ }, _.options.speed);
672
978
  }
673
- });
979
+
980
+ }
674
981
 
675
982
  }
676
983
 
@@ -686,6 +993,10 @@
686
993
 
687
994
  var _ = this;
688
995
 
996
+ if (_.options.onAfterChange !== null && index !== _.currentSlide) {
997
+ _.options.onAfterChange.call(_, index);
998
+ }
999
+
689
1000
  _.animating = false;
690
1001
 
691
1002
  _.currentSlide = index;
@@ -696,28 +1007,10 @@
696
1007
 
697
1008
  _.updateDots();
698
1009
 
699
- if (_.options.autoplay === true) {
700
- _.autoPlay();
701
- }
702
-
703
- if (_.options.onAfterChange !== null) {
704
- _.options.onAfterChange.call();
705
- }
1010
+ _.updateArrows();
706
1011
 
707
- if (_.options.arrows === true && _.options.infinite !==
708
- true) {
709
- if (_.currentSlide === 0) {
710
- _.prevArrow.addClass('slick-disabled');
711
- _.nextArrow.removeClass('slick-disabled');
712
- } else if (_.currentSlide >= (_.slideCount /
713
- _.options.slidesToScroll * _.options.slidesToShow
714
- ) - _.options.slidesToScroll) {
715
- _.nextArrow.addClass('slick-disabled');
716
- _.prevArrow.removeClass('slick-disabled');
717
- } else {
718
- _.prevArrow.removeClass('slick-disabled');
719
- _.nextArrow.removeClass('slick-disabled');
720
- }
1012
+ if (_.options.autoplay === true && _.paused === false) {
1013
+ _.autoPlay();
721
1014
  }
722
1015
 
723
1016
  _.setSlideClasses(_.currentSlide);
@@ -726,255 +1019,200 @@
726
1019
 
727
1020
  Slick.prototype.slideHandler = function (index) {
728
1021
 
729
- var targetSlide, slideLeft, targetLeft =
730
- null,
731
- _ = this;
1022
+ var targetSlide, animSlide, slideLeft, targetLeft = null, _ = this;
732
1023
 
733
1024
  if(_.animating === true) {
734
1025
  return false;
735
1026
  }
736
1027
 
737
1028
  targetSlide = index;
738
- targetLeft = ((targetSlide * _.slideWidth) * -1) +
739
- _.slideOffset;
740
- slideLeft = ((_.currentSlide * _.slideWidth) * -1) +
741
- _.slideOffset;
742
-
743
- if (_.options.autoplay === true) {
744
- clearInterval(_.autoPlayTimer);
745
- }
746
1029
 
747
- if (_.swipeLeft === null) {
748
- _.currentLeft = slideLeft;
1030
+ if(_.options.vertical === false) {
1031
+ targetLeft = ((targetSlide * _.slideWidth) * -1) + _.slideOffset;
1032
+ slideLeft = ((_.currentSlide * _.slideWidth) * -1) + _.slideOffset;
749
1033
  } else {
750
- _.currentLeft = _.swipeLeft;
1034
+ targetLeft = ((targetSlide * _.listHeight) * -1) - _.listHeight;
1035
+ slideLeft = ((_.currentSlide * _.listHeight) * -1) - _.listHeight;
751
1036
  }
752
1037
 
753
- if (targetSlide < 0) {
754
-
755
- if (_.options.infinite === true) {
756
-
757
- _.animating = true;
758
-
759
- _.animateSlide(targetLeft, function () {
760
-
761
- _.postSlide(_.slideCount - _.options
762
- .slidesToScroll);
763
-
764
- });
765
-
766
- } else {
767
-
768
- _.animateSlide(slideLeft);
1038
+ if (_.options.infinite === false && (index < 0 || index > (_.slideCount -1))) {
1039
+ targetSlide = _.currentSlide;
1040
+ _.animateSlide(slideLeft, function () {
1041
+ _.postSlide(targetSlide);
1042
+ });
1043
+ return false;
1044
+ }
769
1045
 
770
- return false;
1046
+ if (_.options.autoplay === true) {
1047
+ clearInterval(_.autoPlayTimer);
1048
+ }
771
1049
 
772
- }
1050
+ _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
773
1051
 
1052
+ if (targetSlide < 0) {
1053
+ animSlide = _.slideCount - _.options.slidesToScroll;
774
1054
  } else if (targetSlide > (_.slideCount - 1)) {
775
-
776
- if (_.options.infinite === true) {
777
-
778
- _.animating = true;
779
-
780
- _.animateSlide(targetLeft, function () {
781
-
782
- _.postSlide(0);
783
-
784
- });
785
-
786
- } else {
787
-
788
- _.animateSlide(slideLeft);
789
-
790
- return false;
791
-
792
- }
793
-
1055
+ animSlide = 0;
794
1056
  } else {
1057
+ animSlide = targetSlide;
1058
+ }
795
1059
 
796
- _.animating = true;
797
-
798
- _.animateSlide(targetLeft, function () {
1060
+ _.animating = true;
799
1061
 
800
- _.postSlide(targetSlide);
1062
+ if (_.options.onBeforeChange !== null && index !== _.currentSlide) {
1063
+ _.options.onBeforeChange.call(_, animSlide);
1064
+ }
801
1065
 
1066
+ if (_.options.fade === true) {
1067
+ _.fadeSlide(animSlide, function(){
1068
+ _.postSlide(animSlide);
802
1069
  });
803
-
1070
+ return false;
804
1071
  }
1072
+ _.animateSlide(targetLeft, function () {
1073
+ _.postSlide(animSlide);
1074
+ });
805
1075
 
806
1076
  };
807
1077
 
808
- Slick.prototype.swipeStart = function (event) {
1078
+ Slick.prototype.setCSS = function (position) {
809
1079
 
810
- var _ = this, touches;
1080
+ var _ = this, positionProps = {}, x, y;
811
1081
 
812
- touches = event.originalEvent.touches;
1082
+ x = _.positionProp == 'left' ? position + 'px' : '0px';
1083
+ y = _.positionProp == 'top' ? position + 'px' : '0px';
813
1084
 
814
- if (_.touchObject.fingerCount === 1 || event.data
815
- .kind === 'drag') {
1085
+ positionProps[_.positionProp] = position;
816
1086
 
817
- if (event.data.kind === 'touch') {
818
- _.touchObject.startX = _.touchObject.
819
- curX =touches[0].pageX;
820
- _.touchObject.startY = _.touchObject.
821
- curY =touches[0].pageY;
1087
+ if (_.transformsEnabled === false) {
1088
+ _.slideTrack.css(positionProps);
1089
+ } else {
1090
+ positionProps = {};
1091
+ if(_.cssTransitions === false) {
1092
+ positionProps[_.animType] = "translate(" + x + ", " + y + ")";
1093
+ _.slideTrack.css(positionProps);
822
1094
  } else {
823
- _.list.addClass('dragging');
824
- _.touchObject.startX = _.touchObject.
825
- curX = event.clientX;
826
- _.touchObject.startY = _.touchObject.
827
- curY = event.clientY;
1095
+ positionProps[_.animType] = "translate3d(" + x + ", " + y + ", 0px)";
1096
+ _.slideTrack.css(positionProps);
828
1097
  }
829
-
830
- } else {
831
-
832
- _.touchObject = {};
833
-
834
1098
  }
835
1099
 
836
1100
  };
837
1101
 
838
- Slick.prototype.swipeMove = function (event) {
1102
+ Slick.prototype.swipeStart = function (event) {
839
1103
 
840
- var _ = this, animProps = {}, curLeft, newLeft = null, touches;
1104
+ var _ = this, touches;
841
1105
 
842
- touches = event.originalEvent.touches;
843
1106
 
844
- curLeft = ((_.currentSlide * _.slideWidth) * -1) +
845
- _.slideOffset;
1107
+ if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
1108
+ _.touchObject = {};
1109
+ return false;
1110
+ }
846
1111
 
847
- if ((touches && touches.length === 1) || event.
848
- data.kind ==='drag') {
1112
+ if(event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
1113
+ touches = event.originalEvent.touches[0];
1114
+ }
849
1115
 
850
- if (event.data.kind === 'touch') {
851
- _.touchObject.curX = touches[0].pageX;
852
- _.touchObject.curY = touches[0].pageY;
853
- } else {
854
- _.touchObject.curX = event.clientX;
855
- _.touchObject.curY = event.clientY;
856
- }
1116
+ _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
1117
+ _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
857
1118
 
858
- _.touchObject.swipeLength = Math.round(Math.sqrt(
859
- Math.pow(_.touchObject.curX - _.touchObject
860
- .startX, 2)));
1119
+ _.list.addClass('dragging');
861
1120
 
862
- if (_.swipeDirection() !== 'up' && _.swipeDirection() !==
863
- 'down') {
1121
+ };
864
1122
 
865
- event.originalEvent.preventDefault();
1123
+ Slick.prototype.swipeMove = function (event) {
866
1124
 
867
- if (_.touchObject.curX > _.touchObject
868
- .startX) {
1125
+ var _ = this, curLeft, swipeDirection, positionOffset, touches;
869
1126
 
870
- if (_.options.touchMove === true) {
1127
+ touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
871
1128
 
872
- newLeft = curLeft + _.touchObject
873
- .swipeLength;
874
- if (_.transformsEnabled ===
875
- false) {
876
- _.slideTrack.css('left',
877
- newLeft);
878
- } else {
879
- animProps[_.animType] =
880
- "translate(" + newLeft +
881
- "px, 0px)";
882
- _.slideTrack.css(animProps);
883
- _.swipeLeft = newLeft;
884
- }
1129
+ curLeft = _.options.vertical === false ? ((_.currentSlide * _.slideWidth) * -1) +
1130
+ _.slideOffset : ((_.currentSlide * _.listHeight) * -1) -
1131
+ _.listHeight;
885
1132
 
886
- }
1133
+ if((!_.list.hasClass('dragging') && event.data.kind === 'drag') ||
1134
+ touches && touches.length !== 1){
1135
+ return false;
1136
+ }
887
1137
 
888
- } else {
1138
+ _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
1139
+ _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
889
1140
 
890
- if (_.options.touchMove === true) {
1141
+ _.touchObject.swipeLength = Math.round(Math.sqrt(
1142
+ Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
891
1143
 
892
- newLeft = curLeft - _.touchObject
893
- .swipeLength;
894
- if (_.transformsEnabled ===
895
- false) {
896
- _.slideTrack.css('left',
897
- newLeft);
898
- } else {
899
- animProps[_.animType] =
900
- "translate(" + newLeft +
901
- "px, 0px)";
902
- _.slideTrack.css(animProps);
903
- _.swipeLeft = newLeft;
904
- }
1144
+ swipeDirection = _.swipeDirection();
905
1145
 
906
- }
1146
+ if (swipeDirection === 'vertical') {
1147
+ return false;
1148
+ }
907
1149
 
908
- }
1150
+ if(event.originalEvent !== undefined) {
1151
+ event.preventDefault();
1152
+ }
909
1153
 
910
- }
1154
+ positionOffset = _.touchObject.curX > _.touchObject.startX ? 1 : -1;
911
1155
 
1156
+ if(_.options.vertical === false) {
1157
+ _.swipeLeft = curLeft + _.touchObject.swipeLength * positionOffset;
912
1158
  } else {
1159
+ _.swipeLeft = curLeft + (_.touchObject
1160
+ .swipeLength * (_.listHeight / _.listWidth)) * positionOffset;
1161
+ }
913
1162
 
914
- _.touchObject = {};
1163
+ if(_.options.fade === true || _.options.touchMove === false) {
1164
+ return false;
1165
+ }
915
1166
 
1167
+ if (_.animating === true) {
1168
+ _.swipeLeft = null;
1169
+ return false;
916
1170
  }
917
1171
 
1172
+ _.setCSS(_.swipeLeft);
1173
+
918
1174
  };
919
1175
 
920
1176
  Slick.prototype.swipeEnd = function (event) {
921
1177
 
922
1178
  var _ = this;
923
1179
 
924
- if ((_.touchObject.fingerCount === 0 && _.touchObject
925
- .curX !== 0) || event.data.kind === 'drag') {
1180
+ _.list.removeClass('dragging');
926
1181
 
927
- if (_.touchObject.swipeLength >= _.touchObject
928
- .minSwipe) {
1182
+ if ((_.touchObject.fingerCount !== 0) && event.data.kind !== 'drag') {
1183
+ _.touchObject = {};
1184
+ return false;
1185
+ }
929
1186
 
930
- switch (_.swipeDirection()) {
1187
+ if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {
931
1188
 
1189
+ switch (_.swipeDirection()) {
932
1190
  case 'left':
933
-
934
- _.slideHandler(_.currentSlide +
935
- _.options.slidesToScroll);
1191
+ _.slideHandler(_.currentSlide + _.options.slidesToScroll);
936
1192
  _.touchObject = {};
937
-
938
- break;
1193
+ break;
939
1194
 
940
1195
  case 'right':
941
-
942
- _.slideHandler(_.currentSlide -
943
- _.options.slidesToScroll);
1196
+ _.slideHandler(_.currentSlide - _.options.slidesToScroll);
944
1197
  _.touchObject = {};
945
-
946
- break;
947
-
948
- }
949
-
950
- } else {
951
-
952
- _.slideHandler(_.currentSlide);
953
- _.touchObject = {};
954
-
955
- }
956
-
957
- if (event.data.kind === 'drag') {
958
- _.list.removeClass('dragging');
1198
+ break;
959
1199
  }
960
1200
 
961
1201
  } else {
962
-
1202
+ _.slideHandler(_.currentSlide);
963
1203
  _.touchObject = {};
964
-
965
1204
  }
966
1205
 
967
1206
  };
968
1207
 
969
- Slick.prototype.swipeCancel = function () {
1208
+ Slick.prototype.keyHandler = function (event) {
970
1209
 
971
1210
  var _ = this;
972
1211
 
973
- _.list.removeClass('dragging');
974
-
975
- if (_.touchObject.startX) {
976
- _.slideHandler(_.currentSlide);
977
- _.touchObject = {};
1212
+ if (event.keyCode === 37) {
1213
+ _.changeSlide({data: {message: 'previous'}});
1214
+ } else if (event.keyCode === 39) {
1215
+ _.changeSlide({data: {message: 'next'}});
978
1216
  }
979
1217
 
980
1218
  };
@@ -983,38 +1221,26 @@
983
1221
 
984
1222
  var _ = this;
985
1223
 
986
- if (event.data.kind === 'touch') {
987
- _.touchObject.fingerCount = event.originalEvent.touches
988
- .length;
1224
+ if(event.originalEvent !== undefined) {
1225
+ _.touchObject.fingerCount = event.originalEvent.touches !== undefined ?
1226
+ event.originalEvent.touches.length : 1;
989
1227
  }
990
1228
 
991
- _.touchObject.minSwipe = _.slideWidth / _.options
1229
+ _.touchObject.minSwipe = _.listWidth / _.options
992
1230
  .touchThreshold;
993
1231
 
994
1232
  switch (event.data.action) {
995
1233
 
996
1234
  case 'start':
997
-
998
1235
  _.swipeStart(event);
999
-
1000
1236
  break;
1001
1237
 
1002
1238
  case 'move':
1003
-
1004
1239
  _.swipeMove(event);
1005
-
1006
1240
  break;
1007
1241
 
1008
1242
  case 'end':
1009
-
1010
1243
  _.swipeEnd(event);
1011
-
1012
- break;
1013
-
1014
- case 'cancel':
1015
-
1016
- _.swipeCancel();
1017
-
1018
1244
  break;
1019
1245
 
1020
1246
  }
@@ -1043,11 +1269,8 @@
1043
1269
  if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
1044
1270
  return 'right';
1045
1271
  }
1046
- if ((swipeAngle > 45) && (swipeAngle < 135)) {
1047
- return 'down';
1048
- }
1049
1272
 
1050
- return 'up';
1273
+ return 'vertical';
1051
1274
 
1052
1275
  };
1053
1276
 
@@ -1063,8 +1286,67 @@
1063
1286
 
1064
1287
  };
1065
1288
 
1289
+ Slick.prototype.unload = function () {
1290
+ var _ = this;
1291
+ $('.slick-cloned', _.slider).remove();
1292
+ $('.slick-placeholder', _.slider).remove();
1293
+ if (_.dots) {
1294
+ _.dots.remove();
1295
+ }
1296
+ if (_.prevArrow) {
1297
+ _.prevArrow.remove();
1298
+ _.nextArrow.remove();
1299
+ }
1300
+ _.slides.removeClass(
1301
+ 'slick-slide slick-active slick-visible').removeAttr('style');
1302
+ };
1303
+
1304
+ Slick.prototype.reinit = function () {
1305
+
1306
+ var _ = this;
1307
+
1308
+ _.slides = $(_.options.slide +
1309
+ ':not(.slick-cloned)', _.slideTrack).addClass(
1310
+ 'slick-slide');
1311
+
1312
+ _.slideCount = _.slides.length;
1313
+
1314
+ if(_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
1315
+ _.currentSlide = _.currentSlide - _.options.slidesToScroll;
1316
+ }
1317
+
1318
+ _.setProps();
1319
+
1320
+ _.setupPlaceholders();
1321
+
1322
+ _.setupInfinite();
1323
+
1324
+ _.buildArrows();
1325
+
1326
+ _.updateArrows();
1327
+
1328
+ _.initArrowEvents();
1329
+
1330
+ _.buildDots();
1331
+
1332
+ _.updateDots();
1333
+
1334
+ _.initDotEvents();
1335
+
1336
+ _.setSlideClasses(0);
1337
+
1338
+ _.setPosition();
1339
+
1340
+ };
1341
+
1066
1342
  Slick.prototype.destroy = function () {
1343
+
1067
1344
  var _ = this;
1345
+
1346
+ _.autoPlayClear();
1347
+
1348
+ _.touchObject = {};
1349
+
1068
1350
  $('.slick-cloned', _.slider).remove();
1069
1351
  $('.slick-placeholder', _.slider).remove();
1070
1352
  if (_.dots) {
@@ -1076,9 +1358,10 @@
1076
1358
  }
1077
1359
  _.slides.unwrap().unwrap();
1078
1360
  _.slides.removeClass(
1079
- 'slick-slide slick-active slick-visible').width('');
1361
+ 'slick-slide slick-active slick-visible').removeAttr('style');
1080
1362
  _.slider.removeClass('slick-slider');
1081
1363
  _.slider.removeClass('slick-initialized');
1364
+
1082
1365
  };
1083
1366
 
1084
1367
  $.fn.slick = function (options) {
@@ -1090,6 +1373,42 @@
1090
1373
  });
1091
1374
  };
1092
1375
 
1376
+ $.fn.slickAdd = function (slide) {
1377
+ var _ = this;
1378
+ return _.each(function (index, element) {
1379
+
1380
+ element.slick.addSlide(slide);
1381
+
1382
+ });
1383
+ };
1384
+
1385
+ $.fn.slickRemove = function (slide) {
1386
+ var _ = this;
1387
+ return _.each(function (index, element) {
1388
+
1389
+ element.slick.removeSlide(slide);
1390
+
1391
+ });
1392
+ };
1393
+
1394
+ $.fn.slickFilter = function (filter) {
1395
+ var _ = this;
1396
+ return _.each(function (index, element) {
1397
+
1398
+ element.slick.filterSlides(filter);
1399
+
1400
+ });
1401
+ };
1402
+
1403
+ $.fn.slickUnfilter = function () {
1404
+ var _ = this;
1405
+ return _.each(function (index, element) {
1406
+
1407
+ element.slick.unfilterSlides();
1408
+
1409
+ });
1410
+ };
1411
+
1093
1412
  $.fn.slickGoTo = function (slide) {
1094
1413
  var _ = this;
1095
1414
  return _.each(function (index, element) {
@@ -1122,6 +1441,7 @@
1122
1441
  return _.each(function (index, element) {
1123
1442
 
1124
1443
  element.slick.autoPlayClear();
1444
+ element.slick.paused = true;
1125
1445
 
1126
1446
  });
1127
1447
  };
@@ -1130,11 +1450,26 @@
1130
1450
  var _ = this;
1131
1451
  return _.each(function (index, element) {
1132
1452
 
1453
+ element.slick.paused = false;
1133
1454
  element.slick.autoPlay();
1134
1455
 
1135
1456
  });
1136
1457
  };
1137
1458
 
1459
+ $.fn.slickSetOption = function (option, value, refresh) {
1460
+ var _ = this;
1461
+ return _.each(function (index, element) {
1462
+
1463
+ element.slick.options[option] = value;
1464
+
1465
+ if(refresh === true) {
1466
+ element.slick.unload();
1467
+ element.slick.reinit();
1468
+ }
1469
+
1470
+ });
1471
+ };
1472
+
1138
1473
  $.fn.unslick = function () {
1139
1474
  var _ = this;
1140
1475
  return _.each(function (index, element) {