vendor: 29,933 bytes, lines 1-680
1/* 2 * jQuery Nivo Slider v3.2 3 * http://nivo.dev7studios.com 4 * 5 * Copyright 2012, Dev7studios 6 * Free to use and abuse under the MIT license. 7 * http://www.opensource.org/licenses/mit-license.php 8 * 9 * minor modification by red_sun 10 */ 11 12(function($) { 13 var NivoSlider = function(element, options){ 14 // Defaults are below 15 var settings = $.extend({}, $.fn.nivoSlider.defaults, options); 16 17 // Useful variables. Play carefully. 18 var vars = { 19 currentSlide: 0, 20 currentImage: '', 21 totalSlides: 0, 22 running: false, 23 paused: false, 24 stop: false, 25 controlNavEl: false 26 }; 27 28 // Get this slider 29 var slider = $(element); 30 slider.data('nivo:vars', vars).addClass('nivoSlider'); 31 32 // Find our slider children 33 var kids = slider.children(); 34 kids.each(function() { 35 var child = $(this); 36 var link = ''; 37 if(!child.is('img')){ 38 if(child.is('a')){ 39 child.addClass('nivo-imageLink'); 40 link = child; 41 } 42 child = child.find('img:first'); 43 } 44 // Get img width & height 45 var childWidth = (childWidth === 0) ? child.attr('width') : child.width(), 46 childHeight = (childHeight === 0) ? child.attr('height') : child.height(); 47 48 if(link !== ''){ 49 link.css('display','none'); 50 } 51 child.css('display','none'); 52 vars.totalSlides++; 53 }); 54 55 // If randomStart 56 if(settings.randomStart){ 57 settings.startSlide = Math.floor(Math.random() * vars.totalSlides); 58 } 59 60 // Set startSlide 61 if(settings.startSlide > 0){ 62 if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; } 63 vars.currentSlide = settings.startSlide; 64 } 65 66 // Get initial image 67 if($(kids[vars.currentSlide]).is('img')){ 68 vars.currentImage = $(kids[vars.currentSlide]); 69 } else { 70 vars.currentImage = $(kids[vars.currentSlide]).find('img:first'); 71 } 72 73 // Show initial link 74 if($(kids[vars.currentSlide]).is('a')){ 75 $(kids[vars.currentSlide]).css('display','block'); 76 } 77 78 // Set first background 79 var sliderImg = $('<img/>').addClass('nivo-main-image'); 80 sliderImg.attr('src', vars.currentImage.attr('src')).show(); 81 slider.append(sliderImg); 82 83 // Detect Window Resize 84 $(window).resize(function() { 85 slider.children('img').width(slider.width()); 86 sliderImg.attr('src', vars.currentImage.attr('src')); 87 sliderImg.stop().height('auto'); 88 $('.nivo-slice').remove(); 89 $('.nivo-box').remove(); 90 }); 91 92// --> modification red_sun: add <p> 93 //Create caption 94 slider.append($('<div class="nivo-caption"><p class="nivo-p"></p></div>')); 95 96 // Process caption function 97 var processCaption = function(settings){ 98 var nivoCaption = $('.nivo-caption', slider); 99 var nivoCaption = $('.nivo-p', slider); 100 101// --> modification red_sun: make caption with link clickable and link to sliderURL 102 if ($(vars.currentImage).hasClass('withurl')) { 103 jQuery('.nivo-caption').css('cursor','pointer'); 104 jQuery('#slider').on('click.linktoURL', '.nivo-caption', function(){ 105 location.href = jQuery(this).siblings('.nivo-imageLink:visible').attr('href'); 106 }); 107 } 108 if ($(vars.currentImage).hasClass('nourl')) { 109 jQuery('.nivo-caption').css('cursor','default'); 110 jQuery('#slider').off('click.linktoURL'); 111 } 112 113 114 if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){ 115 var title = vars.currentImage.attr('title'); 116 if(title.substr(0,1) == '#') title = $(title).html(); 117 118 if(nivoCaption.css('display') == 'block'){ 119 setTimeout(function(){ 120 nivoCaption.html(title); 121 }, settings.animSpeed); 122 } else { 123 nivoCaption.html(title); 124 nivoCaption.stop().fadeIn(settings.animSpeed); 125 } 126 } else { 127 nivoCaption.stop().fadeOut(settings.animSpeed); 128 } 129 } 130 131 //Process initial caption 132 processCaption(settings); 133 134 // In the words of Super Mario "let's a go!" 135 var timer = 0; 136 if(!settings.manualAdvance && kids.length > 1){ 137 timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime); 138 } 139 140 // Add Direction nav 141 if(settings.directionNav){ 142 slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>'); 143 144 $(slider).on('click', 'a.nivo-prevNav', function(){ 145 if(vars.running) { return false; } 146 clearInterval(timer); 147 timer = ''; 148 vars.currentSlide -= 2; 149 nivoRun(slider, kids, settings, 'prev'); 150 }); 151 152 $(slider).on('click', 'a.nivo-nextNav', function(){ 153 if(vars.running) { return false; } 154 clearInterval(timer); 155 timer = ''; 156 nivoRun(slider, kids, settings, 'next'); 157 }); 158 } 159 160 // Add Control nav 161 if(settings.controlNav){ 162 vars.controlNavEl = $('<div class="nivo-controlNav"></div>'); 163 slider.after(vars.controlNavEl); 164 for(var i = 0; i < kids.length; i++){ 165 if(settings.controlNavThumbs){ 166 vars.controlNavEl.addClass('nivo-thumbs-enabled'); 167 var child = kids.eq(i); 168 if(!child.is('img')){ 169 child = child.find('img:first'); 170 } 171 if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>'); 172 } else { 173 vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>'); 174 } 175 } 176 177 //Set initial active link 178 $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active'); 179 180 $('a', vars.controlNavEl).on('click', function(){ 181 if(vars.running) return false; 182 if($(this).hasClass('active')) return false; 183 clearInterval(timer); 184 timer = ''; 185 sliderImg.attr('src', vars.currentImage.attr('src')); 186 vars.currentSlide = $(this).attr('rel') - 1; 187 nivoRun(slider, kids, settings, 'control'); 188 }); 189 } 190 191 //For pauseOnHover setting 192 if(settings.pauseOnHover){ 193 slider.mouseenter(function(){ 194 vars.paused = true; 195 clearInterval(timer); 196 timer = ''; 197 }, function(){ 198 vars.paused = false; 199 // Restart the timer 200 if(timer === '' && !settings.manualAdvance){ 201 timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime); 202 } 203 }); 204 } 205 206 // Event when Animation finishes 207 slider.on('nivo:animFinished', function(){ 208 sliderImg.attr('src', vars.currentImage.attr('src')); 209 vars.running = false; 210 // Hide child links 211 $(kids).each(function(){ 212 if($(this).is('a')){ 213 $(this).css('display','none'); 214 } 215 }); 216 // Show current link 217 if($(kids[vars.currentSlide]).is('a')){ 218 $(kids[vars.currentSlide]).css('display','block'); 219 } 220 // Restart the timer 221 if(timer === '' && !vars.paused && !settings.manualAdvance){ 222 timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime); 223 } 224 // Trigger the afterChange callback 225 settings.afterChange.call(this); 226 }); 227 228 // Add slices for slice animations 229 var createSlices = function(slider, settings, vars) { 230 if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block'); 231 $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show(); 232 var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height(); 233 234 for(var i = 0; i < settings.slices; i++){ 235 var sliceWidth = Math.round(slider.width()/settings.slices); 236 237 if(i === settings.slices-1){ 238 slider.append( 239 $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({ 240 left:(sliceWidth*i)+'px', 241 width:(slider.width()-(sliceWidth*i))+'px', 242 height:sliceHeight+'px', 243 opacity:'0', 244 overflow:'hidden' 245 }) 246 ); 247 } else { 248 slider.append( 249 $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({ 250 left:(sliceWidth*i)+'px', 251 width:sliceWidth+'px', 252 height:sliceHeight+'px', 253 opacity:'0', 254 overflow:'hidden' 255 }) 256 ); 257 } 258 } 259 260 $('.nivo-slice', slider).height(sliceHeight); 261 sliderImg.stop().animate({ 262 height: $(vars.currentImage).height() 263 }, settings.animSpeed); 264 }; 265 266 // Add boxes for box animations 267 var createBoxes = function(slider, settings, vars){ 268 if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block'); 269 $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show(); 270 var boxWidth = Math.round(slider.width()/settings.boxCols), 271 boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows); 272 273 274 for(var rows = 0; rows < settings.boxRows; rows++){ 275 for(var cols = 0; cols < settings.boxCols; cols++){ 276 if(cols === settings.boxCols-1){ 277 slider.append( 278 $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({ 279 opacity:0, 280 left:(boxWidth*cols)+'px', 281 top:(boxHeight*rows)+'px', 282 width:(slider.width()-(boxWidth*cols))+'px' 283 284 }) 285 ); 286 $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px'); 287 } else { 288 slider.append( 289 $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({ 290 opacity:0, 291 left:(boxWidth*cols)+'px', 292 top:(boxHeight*rows)+'px', 293 width:boxWidth+'px' 294 }) 295 ); 296 $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px'); 297 } 298 } 299 } 300 301 sliderImg.stop().animate({ 302 height: $(vars.currentImage).height() 303 }, settings.animSpeed); 304 }; 305 306 // Private run method 307 var nivoRun = function(slider, kids, settings, nudge){ 308 // Get our vars 309 var vars = slider.data('nivo:vars'); 310 311 // Trigger the lastSlide callback 312 if(vars && (vars.currentSlide === vars.totalSlides - 1)){ 313 settings.lastSlide.call(this); 314 } 315 316 // Stop 317 if((!vars || vars.stop) && !nudge) { return false; } 318 319 // Trigger the beforeChange callback 320 settings.beforeChange.call(this); 321 322 // Set current background before change 323 if(!nudge){ 324 sliderImg.attr('src', vars.currentImage.attr('src')); 325 } else { 326 if(nudge === 'prev'){ 327 sliderImg.attr('src', vars.currentImage.attr('src')); 328 } 329 if(nudge === 'next'){ 330 sliderImg.attr('src', vars.currentImage.attr('src')); 331 } 332 } 333 334 vars.currentSlide++; 335 // Trigger the slideshowEnd callback 336 if(vars.currentSlide === vars.totalSlides){ 337 vars.currentSlide = 0; 338 settings.slideshowEnd.call(this); 339 } 340 if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); } 341 // Set vars.currentImage 342 if($(kids[vars.currentSlide]).is('img')){ 343 vars.currentImage = $(kids[vars.currentSlide]); 344 } else { 345 vars.currentImage = $(kids[vars.currentSlide]).find('img:first'); 346 } 347 348 // Set active links 349 if(settings.controlNav){ 350 $('a', vars.controlNavEl).removeClass('active'); 351 $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active'); 352 } 353 354 // Process caption 355 processCaption(settings); 356 357 // Remove any slices from last transition 358 $('.nivo-slice', slider).remove(); 359 360 // Remove any boxes from last transition 361 $('.nivo-box', slider).remove(); 362 363 var currentEffect = settings.effect, 364 anims = ''; 365 366 // Generate random effect 367 if(settings.effect === 'random'){ 368 anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade', 369 'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse'); 370 currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))]; 371 if(currentEffect === undefined) { currentEffect = 'fade'; } 372 } 373 374 // Run random effect from specified set (eg: effect:'fold,fade') 375 if(settings.effect.indexOf(',') !== -1){ 376 anims = settings.effect.split(','); 377 currentEffect = anims[Math.floor(Math.random()*(anims.length))]; 378 if(currentEffect === undefined) { currentEffect = 'fade'; } 379 } 380 381 // Custom transition as defined by "data-transition" attribute 382 if(vars.currentImage.attr('data-transition')){ 383 currentEffect = vars.currentImage.attr('data-transition'); 384 } 385 386 // Run effects 387 vars.running = true; 388 var timeBuff = 0, 389 i = 0, 390 slices = '', 391 firstSlice = '', 392 totalBoxes = '', 393 boxes = ''; 394 395 if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){ 396 createSlices(slider, settings, vars); 397 timeBuff = 0; 398 i = 0; 399 slices = $('.nivo-slice', slider); 400 if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); } 401 402 slices.each(function(){ 403 var slice = $(this); 404 slice.css({ 'top': '0px' }); 405 if(i === settings.slices-1){ 406 setTimeout(function(){ 407 slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); }); 408 }, (100 + timeBuff)); 409 } else { 410 setTimeout(function(){ 411 slice.animate({opacity:'1.0' }, settings.animSpeed); 412 }, (100 + timeBuff)); 413 } 414 timeBuff += 50; 415 i++; 416 }); 417 } else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){ 418 createSlices(slider, settings, vars); 419 timeBuff = 0; 420 i = 0; 421 slices = $('.nivo-slice', slider); 422 if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); } 423 424 slices.each(function(){ 425 var slice = $(this); 426 slice.css({ 'bottom': '0px' }); 427 if(i === settings.slices-1){ 428 setTimeout(function(){ 429 slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); }); 430 }, (100 + timeBuff)); 431 } else { 432 setTimeout(function(){ 433 slice.animate({opacity:'1.0' }, settings.animSpeed); 434 }, (100 + timeBuff)); 435 } 436 timeBuff += 50; 437 i++; 438 }); 439 } else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){ 440 createSlices(slider, settings, vars); 441 timeBuff = 0; 442 i = 0; 443 var v = 0; 444 slices = $('.nivo-slice', slider); 445 if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); } 446 447 slices.each(function(){ 448 var slice = $(this); 449 if(i === 0){ 450 slice.css('top','0px'); 451 i++; 452 } else { 453 slice.css('bottom','0px'); 454 i = 0; 455 } 456 457 if(v === settings.slices-1){ 458 setTimeout(function(){ 459 slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); }); 460 }, (100 + timeBuff)); 461 } else { 462 setTimeout(function(){ 463 slice.animate({opacity:'1.0' }, settings.animSpeed); 464 }, (100 + timeBuff)); 465 } 466 timeBuff += 50; 467 v++; 468 }); 469 } else if(currentEffect === 'fold'){ 470 createSlices(slider, settings, vars); 471 timeBuff = 0; 472 i = 0; 473 474 $('.nivo-slice', slider).each(function(){ 475 var slice = $(this); 476 var origWidth = slice.width(); 477 slice.css({ top:'0px', width:'0px' }); 478 if(i === settings.slices-1){ 479 setTimeout(function(){ 480 slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); }); 481 }, (100 + timeBuff)); 482 } else { 483 setTimeout(function(){ 484 slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed); 485 }, (100 + timeBuff)); 486 } 487 timeBuff += 50; 488 i++; 489 }); 490 } else if(currentEffect === 'fade'){ 491 createSlices(slider, settings, vars); 492 493 firstSlice = $('.nivo-slice:first', slider); 494 firstSlice.css({ 495 'width': slider.width() + 'px' 496 }); 497 498 firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); }); 499 } else if(currentEffect === 'slideInRight'){ 500 createSlices(slider, settings, vars); 501 502 firstSlice = $('.nivo-slice:first', slider); 503 firstSlice.css({ 504 'width': '0px', 505 'opacity': '1' 506 }); 507 508 firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); }); 509 } else if(currentEffect === 'slideInLeft'){ 510 createSlices(slider, settings, vars); 511 512 firstSlice = $('.nivo-slice:first', slider); 513 firstSlice.css({ 514 'width': '0px', 515 'opacity': '1', 516 'left': '', 517 'right': '0px' 518 }); 519 520 firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ 521 // Reset positioning 522 firstSlice.css({ 523 'left': '0px', 524 'right': '' 525 }); 526 slider.trigger('nivo:animFinished'); 527 }); 528 } else if(currentEffect === 'boxRandom'){ 529 createBoxes(slider, settings, vars); 530 531 totalBoxes = settings.boxCols * settings.boxRows; 532 i = 0; 533 timeBuff = 0; 534 535 boxes = shuffle($('.nivo-box', slider)); 536 boxes.each(function(){ 537 var box = $(this); 538 if(i === totalBoxes-1){ 539 setTimeout(function(){ 540 box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); }); 541 }, (100 + timeBuff)); 542 } else { 543 setTimeout(function(){ 544 box.animate({ opacity:'1' }, settings.animSpeed); 545 }, (100 + timeBuff)); 546 } 547 timeBuff += 20; 548 i++; 549 }); 550 } else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){ 551 createBoxes(slider, settings, vars); 552 553 totalBoxes = settings.boxCols * settings.boxRows; 554 i = 0; 555 timeBuff = 0; 556 557 // Split boxes into 2D array 558 var rowIndex = 0; 559 var colIndex = 0; 560 var box2Darr = []; 561 box2Darr[rowIndex] = []; 562 boxes = $('.nivo-box', slider); 563 if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){ 564 boxes = $('.nivo-box', slider)._reverse(); 565 } 566 boxes.each(function(){ 567 box2Darr[rowIndex][colIndex] = $(this); 568 colIndex++; 569 if(colIndex === settings.boxCols){ 570 rowIndex++; 571 colIndex = 0; 572 box2Darr[rowIndex] = []; 573 } 574 }); 575 576 // Run animation 577 for(var cols = 0; cols < (settings.boxCols * 2); cols++){ 578 var prevCol = cols; 579 for(var rows = 0; rows < settings.boxRows; rows++){ 580 if(prevCol >= 0 && prevCol < settings.boxCols){ 581 /* Due to some weird JS bug with loop vars 582 being used in setTimeout, this is wrapped 583 with an anonymous function call */ 584 (function(row, col, time, i, totalBoxes) { 585 var box = $(box2Darr[row][col]); 586 var w = box.width(); 587 var h = box.height(); 588 if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){ 589 box.width(0).height(0); 590 } 591 if(i === totalBoxes-1){ 592 setTimeout(function(){ 593 box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); }); 594 }, (100 + time)); 595 } else { 596 setTimeout(function(){ 597 box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3); 598 }, (100 + time)); 599 } 600 })(rows, prevCol, timeBuff, i, totalBoxes); 601 i++; 602 } 603 prevCol--; 604 } 605 timeBuff += 100; 606 } 607 } 608 }; 609 610 // Shuffle an array 611 var shuffle = function(arr){ 612 for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x); 613 return arr; 614 }; 615 616 // For debugging 617 var trace = function(msg){ 618 if(this.console && typeof console.log !== 'undefined') { console.log(msg); } 619 }; 620 621 // Start / Stop 622 this.stop = function(){ 623 if(!$(element).data('nivo:vars').stop){ 624 $(element).data('nivo:vars').stop = true; 625 trace('Stop Slider'); 626 } 627 }; 628 629 this.start = function(){ 630 if($(element).data('nivo:vars').stop){ 631 $(element).data('nivo:vars').stop = false; 632 trace('Start Slider'); 633 } 634 }; 635 636 // Trigger the afterLoad callback 637 settings.afterLoad.call(this); 638 639 return this; 640 }; 641 642 $.fn.nivoSlider = function(options) { 643 return this.each(function(key, value){ 644 var element = $(this); 645 // Return early if this element already has a plugin instance 646 if (element.data('nivoslider')) { return element.data('nivoslider'); } 647 // Pass options to plugin constructor 648 var nivoslider = new NivoSlider(this, options); 649 // Store plugin object in this element's data 650 element.data('nivoslider', nivoslider); 651 }); 652 }; 653 654 //Default settings 655 $.fn.nivoSlider.defaults = { 656 effect: 'random', 657 slices: 15, 658 boxCols: 8, 659 boxRows: 4, 660 animSpeed: 500, 661 pauseTime: 3000, 662 startSlide: 0, 663 directionNav: true, 664 controlNav: true, 665 controlNavThumbs: false, 666 pauseOnHover: true, 667 manualAdvance: false, 668 prevText: 'Prev', 669 nextText: 'Next', 670 randomStart: false, 671 beforeChange: function(){}, 672 afterChange: function(){}, 673 slideshowEnd: function(){}, 674 lastSlide: function(){}, 675 afterLoad: function(){} 676 }; 677 678 $.fn._reverse = [].reverse; 679 680})(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.