1(function($) { 2 $('.mega-slider').each(function() { 3 // Define show and hide label triggers 4 $(this) 5 .find('.mega-slider__slide') 6 .on('showLabel', function(event) { 7 $(this) 8 .find('.mega-slider__slide__label') 9 .css('bottom', '-50px') 10 .animate({ 11 bottom: 0 12 }, 400); 13 }).on('hideLabel', function(event) { 14 $(this) 15 .find('.mega-slider__slide__label') 16 .css('bottom', 0) 17 .animate({ 18 bottom: '-50px' 19 }, 200); 20 }); 21 22 // Define this slide trigger 23 $(this) 24 .find('.mega-slider__row') 25 .on('thisSlide', function(event) { 26 if($(event.target).hasClass('mega-slider__row__link') || $(this).hasClass('mega-slider__row--active')) return; 27 slide = $(this).index(); 28 $(this) 29 .addClass('mega-slider__row--active') 30 .siblings() 31 .removeClass('mega-slider__row--active'); 32 $(this) 33 .closest('.mega-slider') 34 .find('.mega-slider__slide--active') 35 .trigger('hideLabel') 36 .closest('.mega-slider__slide') 37 .siblings() 38 .andSelf() 39 .eq(slide) 40 .stop(true, true) 41 .css('pointer-events', '') 42 .css('z-index', 0) 43 .css('display', 'block') 44 .addClass('mega-slider__slide--active') 45 .siblings('.mega-slider__slide--active') 46 .css('pointer-events', 'none') 47 .css('z-index', '') 48 .removeClass('mega-slider__slide--active') 49 .fadeOut(400, function() { 50 $(this) 51 .siblings() 52 .andSelf() 53 .eq(slide) 54 .trigger('showLabel'); 55 }); 56 }); 57 58 // Activate click trigger 59 $(this) 60 .find('.mega-slider__row') 61 .on('click', function(event) { 62 $(this).trigger('thisSlide'); 63 $(this) 64 .closest('.mega-slider') 65 .trigger('resetInterval'); 66 }); 67 68 // Define next slide trigger 69 $(this) 70 .on('nextSlide', function(event) { 71 $row = $(this).find('.mega-slider__row--active').next(); 72 if ( 0 == $row.length ) { 73 $row = $(this).find('.mega-slider__row'); 74 } 75 $row.eq(0).trigger('thisSlide'); 76 }); 77 78 // Animate first label 79 $(this) 80 .closest('.mega-slider') 81 .find('.mega-slider__slide--active .mega-slider__slide__label') 82 .animate({ 83 bottom: 0 84 }, 400); 85 86 // Define start, stop, and reset interval triggers 87 $(this) 88 .on('startInterval', function(event) { 89 if ( '1' == $(this).data('autoplay') ) { 90 var $slider = $(this); 91 $slider.data('interval', setInterval(function () { 92 $slider.trigger('nextSlide'); 93 }, parseInt( $slider.data('delay') ) * 1000 ) ); 94 } 95 }).on('stopInterval', function(event) { 96 clearInterval( $(this).data('interval') ); 97 }).on('resetInterval', function(event) { 98 $(this).trigger('stopInterval').trigger('startInterval'); 99 }); 100 101 // Activate autoplay trigger 102 $(this).trigger('startInterval'); 103 104 }); 105})(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.