1/* 2 Ninzio Slider 1.0.0 3 http://www.ninzio.com 4 Copyright 2014 Ninzio Team 5*/ 6 7;(function($, window, document, undefined) { 8 9 10 // DEFAULTS 11 var defaults = { 12 container : $('.slides'), 13 slide : $('.slide'), 14 transition : 'fade', 15 autoplay : true, 16 autoplaydelay : 5000, 17 bullets : true 18 }; 19 20 // CONSTRUCTOR FUNCTION 21 function NinzioSlider (element, options){ 22 23 this.config = $.extend({}, defaults, options); 24 this.element = element; 25 this.init(); 26 } 27 28 // METHOD 29 NinzioSlider.prototype.init = function(){ 30 31 // Variables declaration 32 // ==================================================== 33 34 var slider = this.element, 35 slidesContainer = this.config.container, 36 slide = this.config.slide, 37 layer = slider.find('.layer'), 38 totalSlides = slide.length, 39 active = 0; 40 41 // Options 42 // ==================================================== 43 44 var optAutoplay = this.config.autoplay, 45 optAutoplaydelay = this.config.autoplaydelay, 46 optBullets = this.config.bullets; 47 48 // Functions 49 // ==================================================== 50 51 function Navigate(direction){ 52 53 slide.first().removeClass('first-active'); 54 55 active += ~~(direction === 'next') || -1; 56 active = (active < 0) ? totalSlides -1 : active % totalSlides; 57 58 if(direction === 'next'){ 59 60 if (active == 0) { 61 62 // We are at the last slide right now 63 slide.eq(totalSlides-1) 64 .removeClass("animate-in") 65 .addClass("navOutNext") 66 .removeClass("navInNext") 67 .removeClass("navInPrev") 68 .removeClass("navOutPrev") 69 .addClass("animate-out") 70 .removeClass("active"); 71 72 slide.eq(active) 73 .removeClass("animate-out") 74 .addClass("navInNext") 75 .removeClass("navOutNext") 76 .removeClass("navInPrev") 77 .removeClass("navOutPrev") 78 .addClass("active") 79 .addClass("animate-in"); 80 81 } else { 82 83 slide.eq(active-1) 84 .removeClass("animate-in") 85 .addClass("navOutNext") 86 .removeClass("navInNext") 87 .removeClass("navInPrev") 88 .removeClass("navOutPrev") 89 .addClass("animate-out") 90 .removeClass("active"); 91 92 slide.eq(active) 93 .removeClass("animate-out") 94 .addClass("navInNext") 95 .removeClass("navOutNext") 96 .removeClass("navInPrev") 97 .removeClass("navOutPrev") 98 .addClass("active") 99 .addClass("animate-in"); 100 101 } 102 103 } else { 104 105 if (active == totalSlides - 1) { 106 // We are at the first slide right now 107 slide.eq(0) 108 .removeClass("animate-in") 109 .addClass("navOutPrev") 110 .removeClass("navInPrev") 111 .removeClass("navInNext") 112 .removeClass("navOutNext") 113 .addClass("animate-out") 114 .removeClass("active"); 115 116 slide.eq(active) 117 .removeClass("animate-out") 118 .addClass("navInPrev") 119 .removeClass("navOutPrev") 120 .removeClass("navInNext") 121 .removeClass("navOutNext") 122 .addClass("active") 123 .addClass("animate-in"); 124 125 } else { 126 127 slide.eq(active+1) 128 .removeClass("animate-in") 129 .addClass("navOutPrev") 130 .removeClass("navInPrev") 131 .removeClass("navInNext") 132 .removeClass("navOutNext") 133 .addClass("animate-out") 134 .removeClass("active"); 135 136 slide.eq(active) 137 .removeClass("animate-out") 138 .addClass("navInPrev") 139 .removeClass("navOutPrev") 140 .removeClass("navInNext") 141 .removeClass("navOutNext") 142 .addClass("active") 143 .addClass("animate-in"); 144 145 } 146 147 } 148 149 return active; 150 } 151 152 function BulletsNavigation(bulletArray, condition){ 153 154 if (condition) {$(bulletArray[active]).addClass('current-bullet').siblings().removeClass('current-bullet');}; 155 } 156 157 function PlayVideo(activeSlide, target){ 158 var video = target.eq(activeSlide).children('video'); 159 if (video.length) { 160 video[0].play(); 161 }; 162 } 163 164 165 imagesLoaded( slider, function() { 166 167 setTimeout(function(){ 168 169 slide.first().addClass('active').addClass('animate-in').addClass('first-active'); 170 layer.wrapInner( "<div class='layer-wrap'></div>") 171 172 PlayVideo(active, slide); 173 174 if(totalSlides > 1){ 175 $('<span data-direction="prev" class="controls prev slider-nav icon-arrow-left10"></span><span data-direction="next" class="controls next slider-nav icon-uniE91B"></span>').appendTo(slider); 176 } 177 178 if (optBullets == true) { 179 180 if(totalSlides > 1){ 181 $("<div class='slider-bullets clearfix'></div>").appendTo(slider); 182 } 183 184 var bulletsContainer = slider.children('.slider-bullets'); 185 186 for (var i = 1; i <= totalSlides; i++) { 187 $('<span> </span>').appendTo(bulletsContainer); 188 }; 189 190 var bulletItems = bulletsContainer.find('span'); 191 bulletItems.first().addClass('current-bullet'); 192 193 bulletItems.on('click', function(){ 194 var $this = $(this); 195 196 $this.addClass('current-bullet').siblings().removeClass('current-bullet'); 197 198 // Old slide 199 slide.eq(active) 200 .removeClass("animate-in") 201 .addClass("navOutNext") 202 .removeClass("navInNext") 203 .removeClass("navInPrev") 204 .removeClass("navOutPrev") 205 .addClass("animate-out") 206 .removeClass("active"); 207 208 active = $this.index(); 209 210 // Current slide 211 slide.eq(active) 212 .removeClass("animate-out") 213 .addClass("navInNext") 214 .removeClass("navOutNext") 215 .removeClass("navInPrev") 216 .removeClass("navOutPrev") 217 .addClass("active") 218 .addClass("animate-in"); 219 220 PlayVideo(active, slide); 221 222 });
223 224 }; 225 226 slider.find('.controls').on('click', function(){ 227 Navigate($(this).data('direction')); 228 BulletsNavigation(bulletItems,optBullets); 229 PlayVideo(active, slide); 230 }); 231 232 if(totalSlides > 1){ 233 234 slider 235 .on('swipeleft', function(){ 236 Navigate("next"); 237 BulletsNavigation(bulletItems,optBullets); 238 PlayVideo(active, slide); 239 }) 240 .on('swiperight', function(){ 241 Navigate("prev"); 242 BulletsNavigation(bulletItems,optBullets); 243 PlayVideo(active, slide); 244 }); 245 246 } 247 248 if (optAutoplay == true) { 249 250 if(totalSlides > 1){ 251 252 var AutoplayStart = window.setInterval(function(){slider.find('.controls.next').trigger('click');}, optAutoplaydelay); 253 254 255 slider 256 .mouseover(function(){ 257 window.clearInterval(AutoplayStart); 258 }) 259 .mouseout(function(){ 260 AutoplayStart = window.setInterval(function(){slider.find('.controls.next').trigger('click');}, optAutoplaydelay); 261 }) 262 263 if (slider.is(':hover')) { 264 window.clearInterval(AutoplayStart); 265 }; 266 267 } 268 269 }; 270 271 }, 1000); 272 273 // hide loading 274 setTimeout(function(){ 275 slider.find('.slider-loader').addClass('hidden'); 276 }, 1000); 277 278 }); 279 280 // Opacity on scroll 281 var win = $(window); 282 win.scroll(function(){ 283 var percent = ($(document).scrollTop()/win.height()); 284 layer.find('.layer-wrap').css('opacity', 1 - percent); 285 }); 286 287 } 288 289 // EXTENDING NEW FUNCTION 290 291 $.fn.NinzioSlider = function(options){ 292 293 new NinzioSlider(this, options); 294 return this; 295 }; 296 297} (jQuery, window, document));
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.