1/** Super Simple Slider by @intllgnt **/ 2 3;(function($, window, document, undefined ) { 4 5$.fn.sss = function(options) { 6 7// Options 8 9 var settings = $.extend({ 10 slideShow : true, 11 startOn : 0, 12 speed : 3500, 13 transition : 400, 14 arrows : true 15 }, options); 16 17 return this.each(function() { 18 19// Variables 20 21 var 22 wrapper = $(this), 23 slides = wrapper.children().wrapAll('<div class="sss"/>').addClass('ssslide'), 24 slider = wrapper.find('.sss'), 25 slide_count = slides.length, 26 transition = settings.transition, 27 starting_slide = settings.startOn, 28 target = starting_slide > slide_count - 1 ? 0 : starting_slide, 29 animating = false, 30 clicked, 31 timer, 32 key, 33 prev, 34 next, 35 36// Reset Slideshow 37 38 reset_timer = settings.slideShow ? function() { 39 clearTimeout(timer); 40 timer = setTimeout(next_slide, settings.speed); 41 } : $.noop; 42 43// Animate Slider 44 45 function get_height(target) { 46 return ((slides.eq(target).height() / slider.width()) * 100) + '%'; 47 } 48 49 function animate_slide(target) { 50 if ( $( wrapper ).hasClass( 'sss-hover' ) ) { reset_timer(); return; } 51 if (!animating) { 52 animating = true; 53 var target_slide = slides.eq(target); 54 55 target_slide.fadeIn(transition); 56 slides.not(target_slide).fadeOut(transition); 57 58 slider.animate({paddingBottom: get_height(target)}, transition, function() { 59 animating = false; 60 }); 61 62 reset_timer(); 63 } 64 }; 65 66// Next Slide 67 68 function next_slide() { 69 target = target === slide_count - 1 ? 0 : target + 1; 70 animate_slide(target); 71 } 72 73// Prev Slide 74 75 function prev_slide() { 76 target = target === 0 ? slide_count - 1 : target - 1; 77 animate_slide(target); 78 } 79 80 if (settings.arrows) { 81 slider.append('<div class="sssprev"/>', '<div class="sssnext"/>'); 82 } 83 84 next = slider.find('.sssnext'), 85 prev = slider.find('.sssprev'); 86 87 $(window).on('load', function() { 88 89 slider.css({paddingBottom: get_height(target)}).on('click',function(e) { 90 clicked = $(e.target); 91 if (clicked.is(next)) { 92 next_slide() 93 } else if (clicked.is(prev)) { 94 prev_slide() 95 } 96 }); 97 98 animate_slide(target); 99 100 $(document).on('keydown', function(e) { 101 key = e.keyCode; 102 if (key === 39) { 103 next_slide() 104 } else if (key === 37) { 105 prev_slide() 106 } 107 }); 108 109 $( wrapper ).on('mouseenter', function() { 110 $( wrapper ).addClass( 'sss-hover' ); 111 }); 112 113 $( wrapper ).on('mouseleave', function() { 114 $( wrapper ).removeClass( 'sss-hover' ); 115 }); 116 117 }); 118// End 119 120}); 121 122}; 123})(jQuery, window, document); 124 125 126//jQuery(document).ready(function($) { 127 jQuery('.gwolle-gb-widget-slider').sss({ 128 slideShow : true, // Set to false to prevent SSS from automatically animating. 129 startOn : 0, // Slide to display first. Uses array notation (0 = first slide). 130 transition : 600, // Length (in milliseconds) of the fade transition. 131 speed : 5000, // Slideshow speed in milliseconds. 132 showNav : false // Set to false to hide navigation arrows. 133 }); 134//}); 135
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.