1/** ========================================================== 2 3* jquery lightGallery.js v1.1.5 // 3/29/2015 4* http://sachinchoolur.github.io/lightGallery/ 5* Released under the MIT License - http://opensource.org/licenses/mit-license.html ---- FREE ---- 6 7=========================================================/**/ 8; 9(function ($) { 10 "use strict"; 11 $.fn.lightGallery = function (options) { 12 var defaults = { 13 mode: 'slide', 14 useCSS: true, 15 cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',// 16 easing: 'linear', //'for jquery animation',// 17 speed: 600, 18 addClass: '', 19 20 closable: true, 21 loop: false, 22 auto: false, 23 pause: 4000, 24 escKey: true, 25 controls: true, 26 hideControlOnEnd: false, 27 28 preload: 1, //number of preload slides. will exicute only after the current slide is fully loaded. ex:// you clicked on 4th image and if preload = 1 then 3rd slide and 5th slide will be loaded in the background after the 4th slide is fully loaded.. if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ... 29 showAfterLoad: true, 30 selector: null, 31 index: false, 32 33 lang: { 34 allPhotos: 'All photos' 35 }, 36 counter: false, 37 38 exThumbImage: false, 39 thumbnail: true, 40 showThumbByDefault: false, 41 animateThumb: true, 42 currentPagerPosition: 'middle', 43 thumbWidth: 100, 44 thumbMargin: 5, 45 46 47 mobileSrc: false, 48 mobileSrcMaxWidth: 640, 49 swipeThreshold: 50, 50 enableTouch: true, 51 enableDrag: true, 52 53 vimeoColor: 'CCCCCC', 54 youtubePlayerParams: false, // See: https://developers.google.com/youtube/player_parameters 55 videoAutoplay: true, 56 videoMaxWidth: '855px', 57 58 dynamic: false, 59 dynamicEl: [], 60 //callbacks 61 62 onOpen: function (plugin) {}, 63 onSlideBefore: function (plugin) {}, 64 onSlideAfter: function (plugin) {}, 65 onSlideNext: function (plugin) {}, 66 onSlidePrev: function (plugin) {}, 67 onBeforeClose: function (plugin) {}, 68 onCloseAfter: function (plugin) {}, 69 onOpenExternal : function(plugin, index) {}, 70 onToggleInfo : function(plugin) {} 71 }, 72 el = $(this), 73 plugin = this, 74 $children = null, 75 index = 0, 76 isActive = false, 77 lightGalleryOn = false, 78 isTouch = document.createTouch !== undefined || ('ontouchstart' in window) || ('onmsgesturechange' in window) || navigator.msMaxTouchPoints, 79 $gallery, $galleryCont, $slider, $slide, $prev, $next, prevIndex, $thumb_cont, $thumb, windowWidth, interval, usingThumb = false, 80 aTiming = false, 81 aSpeed = false; 82 var settings = $.extend(true, {}, defaults, options); 83 var lightGallery = { 84 init: function () { 85 el.each(function () { 86 var $this = $(this); 87 if (settings.dynamic) { 88 $children = settings.dynamicEl; 89 index = 0; 90 prevIndex = index; 91 setUp.init(index); 92 } else { 93 if (settings.selector !== null) { 94 $children = $(settings.selector); 95 } else { 96 $children = $this.children(); 97 } 98 $children.on('click', function (e) { 99 if (settings.selector !== null) { 100 $children = $(settings.selector); 101 } else { 102 $children = $this.children(); 103 } 104 e.preventDefault(); 105 e.stopPropagation(); 106 index = $children.index(this); 107 prevIndex = index; 108 setUp.init(index); 109 }); 110 } 111 }); 112 } 113 }; 114 var setUp = { 115 init: function () { 116 isActive = true; 117 this.structure(); 118 this.getWidth(); 119 this.closeSlide(); 120 this.autoStart(); 121 this.counter(); 122 this.slideTo(); 123 this.buildThumbnail(); 124 this.addInfoHtml(); 125 this.keyPress(); 126 if (settings.index) { 127 this.slide(settings.index); 128 this.animateThumb(settings.index); 129 } else { 130 this.slide(index); 131 this.animateThumb(index); 132 } 133 if (settings.enableDrag) { 134 this.touch(); 135 } 136 if (settings.enableTouch) { 137 this.enableTouch(); 138 } 139 140 setTimeout(function () { 141 $gallery.addClass('opacity'); 142 }, 50); 143 }, 144 structure: function () { 145 $('body').append('<div id="lg-outer" class="' + settings.addClass + '"><div id="lg-gallery"><div id="lg-slider"></div><a id="lg-close" class="close"><i class="fa fa-close cl-icon"></a></div></div>').addClass('light-gallery'); 146 $galleryCont = $('#lg-outer'); 147 $gallery = $('#lg-gallery'); 148 if (settings.showAfterLoad === true) { 149 $gallery.addClass('show-after-load'); 150 } 151 $slider = $gallery.find('#lg-slider'); 152 var slideList = ''; 153 if (settings.dynamic) { 154 for (var i = 0; i < settings.dynamicEl.length; i++) { 155 slideList += '<div class="lg-slide"></div>'; 156 } 157 } else { 158 $children.each(function () { 159 slideList += '<div class="lg-slide"></div>'; 160 }); 161 } 162 $slider.append(slideList); 163 $slide = $gallery.find('.lg-slide'); 164 }, 165 closeSlide: function () { 166 var $this = this; 167 if (settings.closable) { 168 $('#lg-outer') 169 .on('click', function (event) { 170 if ($(event.target).is('.lg-slide')) { 171 plugin.destroy(false); 172 } 173 }); 174 } 175 $('#lg-close').bind('click touchend', function () { 176 plugin.destroy(false); 177 }); 178 }, 179 getWidth: function () { 180 var resizeWindow = function () { 181 windowWidth = $(window).width(); 182 }; 183 $(window).bind('resize.lightGallery', resizeWindow()); 184 }, 185 doCss: function () { 186 var support = function () { 187 var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; 188 var root = document.documentElement; 189 for (var i = 0; i < transition.length; i++) { 190 if (transition[i] in root.style) { 191 return true; 192 } 193 } 194 }; 195 if (settings.useCSS && support()) { 196 return true; 197 } 198 return false;
199 }, 200 enableTouch: function () { 201 var $this = this; 202 if (isTouch) { 203 var startCoords = {}, 204 endCoords = {}; 205 $('body').on('touchstart.lightGallery', function (e) { 206 endCoords = e.originalEvent.targetTouches[0]; 207 startCoords.pageX = e.originalEvent.targetTouches[0].pageX; 208 startCoords.pageY = e.originalEvent.targetTouches[0].pageY; 209 }); 210 $('body').on('touchmove.lightGallery', function (e) { 211 var orig = e.originalEvent; 212 endCoords = orig.targetTouches[0]; 213 214 //patch 215 if(!jQuery(e.target).parent().hasClass("lg-info")) e.preventDefault(); 216 }); 217 $('body').on('touchend.lightGallery', function (e) { 218 var distance = endCoords.pageX - startCoords.pageX, 219 swipeThreshold = settings.swipeThreshold; 220 if (distance >= swipeThreshold) { 221 $this.prevSlide(); 222 clearInterval(interval); 223 } else if (distance <= -swipeThreshold) { 224 $this.nextSlide(); 225 clearInterval(interval); 226 } 227 }); 228 } 229 }, 230 touch: function () { 231 var xStart, xEnd; 232 var $this = this; 233 $('.light-gallery').bind('mousedown', function (e) { 234 e.stopPropagation(); 235 e.preventDefault(); 236 xStart = e.pageX; 237 }); 238 $('.light-gallery').bind('mouseup', function (e) { 239 e.stopPropagation(); 240 e.preventDefault(); 241 xEnd = e.pageX; 242 if (xEnd - xStart > 20) { 243 $this.prevSlide(); 244 } else if (xStart - xEnd > 20) { 245 $this.nextSlide(); 246 } 247 }); 248 }, 249 isVideo: function (src, index) { 250 var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9_\-]+)/i); 251 var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i); 252 var iframe = false; 253 if (settings.dynamic) { 254 if (settings.dynamicEl[index].iframe == 'true') { 255 iframe = true; 256 } 257 } else { 258 if ($children.eq(index).attr('data-iframe') == 'true') { 259 iframe = true; 260 } 261 } 262 if (youtube || vimeo || iframe) { 263 return true; 264 } 265 }, 266 loadVideo: function (src, _id) { 267 var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9_\-]+)/i); 268 var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i); 269 var video = ''; 270 var a = ''; 271 if (youtube) { 272 if (settings.videoAutoplay === true && lightGalleryOn === false) { 273 a = '?autoplay=1&rel=0&wmode=opaque';
274 } else { 275 a = '?wmode=opaque'; 276 } 277 278 if (settings.youtubePlayerParams) { 279 var youtubeParams = $.param(settings.youtubePlayerParams); 280 a = a + '&' + youtubeParams; 281 } 282 283 video = '<iframe class="object" width="560" height="315" src="//www.youtube.com/embed/' + youtube[1] + a + '" frameborder="0" allowfullscreen></iframe>'; 284 } else if (vimeo) { 285 if (settings.videoAutoplay === true && lightGalleryOn === false) { 286 a = 'autoplay=1&'; 287 } else { 288 a = ''; 289 } 290 video = '<iframe class="object" id="video' + _id + '" width="560" height="315" src="http://player.vimeo.com/video/' + vimeo[1] + '?' + a + 'byline=0&portrait=0&color=' + settings.vimeoColor + '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'; 291 } else { 292 video = '<iframe class="object" frameborder="0" src="' + src + '" allowfullscreen="true"></iframe>'; 293 } 294 return '<div class="video-cont" style="max-width:' + settings.videoMaxWidth + ' !important;"><div class="video">' + video + '</div></div>'; 295 }, 296 addHtml: function (index) { 297 var dataSubHtml = null; 298 if (settings.dynamic) { 299 dataSubHtml = settings.dynamicEl[index]['sub-html']; 300 } else { 301 dataSubHtml = $children.eq(index).attr('data-sub-html'); 302 } 303 if (typeof dataSubHtml !== 'undefined' && dataSubHtml !== null) { 304 var fL = dataSubHtml.substring(0, 1); 305 if (fL == '.' || fL == '#') { 306 dataSubHtml = $(dataSubHtml).html(); 307 } else { 308 dataSubHtml = dataSubHtml; 309 } 310 $slide.eq(index).append(dataSubHtml); 311 } 312 }, 313 addInfoHtml: function () { 314 var dataSubHtml = null; 315 if (settings.dynamic) { 316 dataSubHtml = settings['sub-html']; 317 } else { 318 dataSubHtml = $(plugin).attr('data-sub-html'); 319 } 320 if (typeof dataSubHtml !== 'undefined' && dataSubHtml !== null) { 321 $gallery.append(dataSubHtml); 322 } 323 }, 324 preload: function (index) { 325 var newIndex = index; 326 for (var k = 0; k <= settings.preload; k++) { 327 if (k >= $children.length - index) { 328 break; 329 } 330 this.loadContent(newIndex + k, true); 331 } 332 for (var h = 0; h <= settings.preload; h++) { 333 if (newIndex - h < 0) { 334 break; 335 } 336 this.loadContent(newIndex - h, true); 337 } 338 }, 339 loadObj: function (r, index) { 340 var $this = this; 341 $slide.eq(index).find('.object').on('load error', function () { 342 $slide.eq(index).addClass('complete'); 343 }); 344 if (r === false) { 345 if (!$slide.eq(index).hasClass('complete')) { 346 $slide.eq(index).find('.object').on('load error', function () { 347 $this.preload(index); 348 }); 349 } else { 350 $this.preload(index); 351 } 352 } 353 }, 354 loadContent: function (index, rec) { 355 var $this = this; 356 var i, j, l = $children.length - index; 357 var src; 358 359 if (settings.preload > $children.length) { 360 settings.preload = $children.length; 361 } 362 if (settings.mobileSrc === true && windowWidth <= settings.mobileSrcMaxWidth) { 363 if (settings.dynamic) { 364 src = settings.dynamicEl[index].mobileSrc; 365 } else { 366 src = $children.eq(index).attr('data-responsive-src'); 367 } 368 } 369 370 // Fall back to use non-responsive source if no responsive source was found 371 if (!src) { 372 if (settings.dynamic) { 373 src = settings.dynamicEl[index].src; 374 } else { 375 src = $children.eq(index).attr('data-src'); 376 } 377 } 378 var time = 0; 379 if (rec === true) { 380 time = settings.speed + 400; 381 } 382 383 if (typeof src !== 'undefined' && src !== '') { 384 if (!$this.isVideo(src, index)) { 385 setTimeout(function () { 386 if (!$slide.eq(index).hasClass('loaded')) { 387 $slide.eq(index).prepend('<img class="object" src="' + src + '" />'); 388 $this.addHtml(index); 389 $slide.eq(index).addClass('loaded'); 390 } 391 $this.loadObj(rec, index); 392 }, time); 393 } else { 394 setTimeout(function () { 395 if (!$slide.eq(index).hasClass('loaded')) { 396 $slide.eq(index).prepend($this.loadVideo(src, index)); 397 $this.addHtml(index); 398 $slide.eq(index).addClass('loaded'); 399 400 if (settings.auto && settings.videoAutoplay === true) { 401 clearInterval(interval); 402 } 403 } 404 $this.loadObj(rec, index); 405 }, time); 406 407 } 408 } else { 409 setTimeout(function () { 410 if (!$slide.eq(index).hasClass('loaded')) { 411 var dataHtml = null; 412 if (settings.dynamic) { 413 dataHtml = settings.dynamicEl[index].html; 414 } else { 415 dataHtml = $children.eq(index).attr('data-html'); 416 } 417 if (typeof dataHtml !== 'undefined' && dataHtml !== null) { 418 var fL = dataHtml.substring(0, 1); 419 if (fL == '.' || fL == '#') { 420 dataHtml = $(dataHtml).html(); 421 } else { 422 dataHtml = dataHtml; 423 } 424 } 425 if (typeof dataHtml !== 'undefined' && dataHtml !== null) { 426 $slide.eq(index).append('<div class="video-cont" style="max-width:' + settings.videoMaxWidth + ' !important;"><div class="video">' + dataHtml + '</div></div>'); 427 } 428 $this.addHtml(index); 429 $slide.eq(index).addClass('loaded complete'); 430 431 if (settings.auto && settings.videoAutoplay === true) { 432 clearInterval(interval); 433 } 434 } 435 $this.loadObj(rec, index); 436 }, time); 437 } 438 439 }, 440 counter: function () { 441 if (settings.counter === true) { 442 var slideCount = $("#lg-slider > div").length; 443 $gallery.append("<div id='lg-counter'><span id='lg-counter-current'></span> / <span id='lg-counter-all'>" + slideCount + "</span></div>"); 444 } 445 }, 446 buildThumbnail: function () { 447 if (settings.thumbnail === true && $children.length > 1) { 448 var $this = this, 449 $close = ''; 450 if (!settings.showThumbByDefault) { 451 $close = '<span class="close ib"><i class="fa fa-close cl-icon"></span>'; 452 } 453 $gallery.append('<div class="thumb-cont"><div class="thumb-info">' + $close + '</div><div class="thumb-inner"></div></div>'); 454 $thumb_cont = $gallery.find('.thumb-cont'); 455 $prev.after('<a class="cl-external"><i class="fa fa-chain cl-icon"></a>'); //mx: 456 $prev.after('<a class="cl-info"><i class="fa fa-info cl-icon"></i></a>'); //mx: 457 $prev.after('<a class="cl-thumb"><i class="fa fa-list cl-icon"></a>'); 458 $prev.parent().addClass('has-thumb'); 459 $gallery.find('.cl-thumb').bind('click touchend', function () { 460 $gallery.addClass('open'); 461 if ($this.doCss() && settings.mode === 'slide') { 462 $slide.eq(index).prevAll().removeClass('next-sl
462ide').addClass('prev-slide'); 463 $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide'); 464 } 465 }); 466 $gallery.find('.cl-external').bind('click touchend', function () { 467 settings.onOpenExternal.call(this, plugin,$gallery.find('.thumb.active').index()); 468 }); 469 $gallery.find('.cl-info').bind('click touchend', function () { 470 settings.onToggleInfo.call(this, plugin); 471 }); 472 $gallery.find('.thumb-cont .close').bind('click touchend', function () { 473 $gallery.removeClass('open'); 474 }); 475 var thumbInfo = $gallery.find('.thumb-info'); 476 var $thumb_inner = $gallery.find('.thumb-inner'); 477 var thumbList = ''; 478 var thumbImg; 479 if (settings.dynamic) { 480 for (var i = 0; i < settings.dynamicEl.length; i++) { 481 thumbImg = settings.dynamicEl[i].thumb; 482 thumbList += '<div class="thumb"><img src="' + thumbImg + '" /></div>'; 483 } 484 } else { 485 $children.each(function () { 486 if (settings.exThumbImage === false || typeof $(this).attr(settings.exThumbImage) == 'undefined' || $(this).attr(settings.exThumbImage) === null) { 487 thumbImg = $(this).find('img').attr('src'); 488 } else { 489 thumbImg = $(this).attr(settings.exThumbImage); 490 } 491 thumbList += '<div class="thumb"><img src="' + thumbImg + '" /></div>'; 492 }); 493 } 494 $thumb_inner.append(thumbList); 495 $thumb = $thumb_inner.find('.thumb'); 496 $thumb.css({ 497 'margin-right': settings.thumbMargin + 'px', 498 'width': settings.thumbWidth + 'px' 499 }); 500 if (settings.animateThumb === true) { 501 var width = ($children.length * (settings.thumbWidth + settings.thumbMargin)); 502 $gallery.find('.thumb-inner').css({ 503 'width': width + 'px', 504 'position': 'relative', 505 'transition-duration': settings.speed + 'ms' 506 }); 507 } 508 $thumb.bind('click touchend', function () { 509 usingThumb = true; 510 var index = $(this).index(); 511 $thumb.removeClass('active'); 512 $(this).addClass('active'); 513 $this.slide(index); 514 $this.animateThumb(index); 515 clearInterval(interval); 516 }); 517 thumbInfo.prepend('<span class="ib count">' + settings.lang.allPhotos + ' (' + $thumb.length + ')</span>'); 518 if (settings.showThumbByDefault) { 519 $gallery.addClass('open'); 520 } 521 } 522 }, 523 animateThumb: function (index) { 524 if (settings.animateThumb === true) { 525 var thumb_contW = $gallery.find('.thumb-cont').width(); 526 var position; 527 switch (settings.currentPagerPosition) { 528 case 'left': 529 position = 0; 530 break; 531 case 'middle': 532 position = (thumb_contW / 2) - (settings.thumbWidth / 2); 533 break; 534 case 'right': 535 position = thumb_contW - settings.thumbWidth; 536 } 537 var left = ((settings.thumbWidth + settings.thumbMargin) * index - 1) - position; 538 var width = ($children.length * (settings.thumbWidth + settings.thumbMargin)); 539 if (left > (width - thumb_contW)) { 540 left = width - thumb_contW; 541 } 542 if (left < 0) { 543 left = 0; 544 } 545 if (this.doCss()) { 546 $gallery.find('.thumb-inner').css('transform', 'translate3d(-' + left + 'px, 0px, 0px)'); 547 } else { 548 $gallery.find('.thumb-inner').animate({ 549 left: -left + "px" 550 }, settings.speed); 551 } 552 } 553 }, 554 slideTo: function () { 555 var $this = this; 556 if (settings.controls === true && $children.length > 1) { 557 $gallery.append('<div id="lg-action"><a id="lg-prev"></a><a id="lg-next"></a></div>'); 558 $prev = $gallery.find('#lg-prev'); 559 $next = $gallery.find('#lg-next'); 560 $prev.bind('click', function () { 561 $this.prevSlide(); 562 clearInterval(interval); 563 }); 564 $next.bind('click', function () { 565 $this.nextSlide(); 566 clearInterval(interval); 567 }); 568 } 569 }, 570 autoStart: function () { 571 var $this = this; 572 if (settings.auto === true) { 573 interval = setInterval(function () { 574 if (index + 1 < $children.length) { 575 index = index; 576 } else { 577 index = -1; 578 } 579 index++; 580 $this.slide(index); 581 }, settings.pause); 582 } 583 }, 584 keyPress: function () { 585 var $this = this; 586 $(window).bind('keyup.lightGallery', function (e) { 587 e.preventDefault(); 588 e.stopPropagation(); 589 if (e.keyCode === 37) { 590 $this.prevSlide(); 591 clearInterval(interval); 592 } 593 if (e.keyCode === 38 && settings.thumbnail === true && $children.length > 1) { 594 if (!$gallery.hasClass('open')) { 595 if ($this.doCss() && settings.mode === 'slide') { 596 $slide.eq(index).prevAll().removeClass('next-sl
596ide').addClass('prev-slide'); 597 $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide'); 598 } 599 $gallery.addClass('open'); 600 } 601 } else if (e.keyCode === 39) { 602 $this.nextSlide(); 603 clearInterval(interval); 604 } 605 if (e.keyCode === 40 && settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) { 606 if ($gallery.hasClass('open')) { 607 $gallery.removeClass('open'); 608 } 609 } else if (settings.escKey === true && e.keyCode === 27) { 610 if (!settings.showThumbByDefault && $gallery.hasClass('open')) { 611 $gallery.removeClass('open'); 612 } else { 613 plugin.destroy(false); 614 } 615 } 616 }); 617 }, 618 nextSlide: function () { 619 var $this = this; 620 index = $slide.index($slide.eq(prevIndex)); 621 if (index + 1 < $children.length) { 622 index++; 623 $this.slide(index); 624 } else { 625 if (settings.loop) { 626 index = 0; 627 $this.slide(index); 628 } else if (settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) { 629 $gallery.addClass('open'); 630 } else { 631 $slide.eq(index).find('.object').addClass('right-end'); 632 setTimeout(function () { 633 $slide.find('.object').removeClass('right-end'); 634 }, 400); 635 } 636 } 637 $this.animateThumb(index); 638 settings.onSlideNext.call(this, plugin); 639 }, 640 prevSlide: function () { 641 var $this = this; 642 index = $slide.index($slide.eq(prevIndex)); 643 if (index > 0) { 644 index--; 645 $this.slide(index); 646 } else { 647 if (settings.loop) { 648 index = $children.length - 1; 649 $this.slide(index); 650 } else if (settings.thumbnail === true && $children.length > 1 && !settings.showThumbByDefault) { 651 $gallery.addClass('open'); 652 } else { 653 $slide.eq(index).find('.object').addClass('left-end'); 654 setTimeout(function () { 655 $slide.find('.object').removeClass('left-end'); 656 }, 400); 657 } 658 } 659 $this.animateThumb(index); 660 settings.onSlidePrev.call(this, plugin); 661 }, 662 slide: function (index) { 663 var $this = this; 664 if (lightGalleryOn) { 665 setTimeout(function () { 666 $this.loadContent(index, false); 667 }, settings.speed + 400); 668 if (!$slider.hasClass('on')) { 669 $slider.addClass('on'); 670 } 671 if (this.doCss() && settings.speed !== '') { 672 if (!$slider.hasClass('speed')) { 673 $slider.addClass('speed'); 674 } 675 if (aSpeed === false) { 676 $slider.css('transition-duration', settings.speed + 'ms'); 677 aSpeed = true; 678 } 679 } 680 if (this.doCss() && settings.cssEasing !== '') { 681 if (!$slider.hasClass('timing')) { 682 $slider.addClass('timing'); 683 } 684 if (aTiming === false) { 685 $slider.css('transition-timing-function', settings.cssEasing); 686 aTiming = true; 687 } 688 } 689 settings.onSlideBefore.call(this, plugin); 690 } else { 691 $this.loadContent(index, false); 692 } 693 if (settings.mode === 'slide') { 694 var isiPad = navigator.userAgent.match(/iPad/i) !== null; 695 if (this.doCss() && !$slider.hasClass('slide') && !isiPad) { 696 $slider.addClass('slide'); 697 } else if (this.doCss() && !$slider.hasClass('use-left') && isiPad) { 698 $slider.addClass('use-left'); 699 } 700 /* if(this.doCss()){ 701 $slider.css({ 'transform' : 'translate3d('+(-index*100)+'%, 0px, 0px)' }); 702 }*/ 703 if (!this.doCss() && !lightGalleryOn) { 704 $slider.css({ 705 left: (-index * 100) + '%' 706 }); 707 //$slide.eq(index).css('transition','none'); 708 } else if (!this.doCss() && lightGalleryOn) { 709 $slider.animate({ 710 left: (-index * 100) + '%' 711 }, settings.speed, settings.easing); 712 } 713 } else if (settings.mode === 'fade') { 714 if (this.doCss() && !$slider.hasClass('fade-m')) { 715 $slider.addClass('fade-m'); 716 } else if (!this.doCss() && !$slider.hasClass('animate')) { 717 $slider.addClass('animate'); 718 } 719 if (!this.doCss() && !lightGalleryOn) { 720 $slide.fadeOut(100); 721 $slide.eq(index).fadeIn(100); 722 } else if (!this.doCss() && lightGalleryOn) { 723 $slide.eq(prevIndex).fadeOut(settings.speed, settings.easing); 724 $slide.eq(index).fadeIn(settings.speed, settings.easing); 725 } 726 } 727 if (index + 1 >= $children.length && settings.auto && settings.loop === false) { 728 clearInterval(interval); 729 } 730 $slide.eq(prevIndex).removeClass('current'); 731 $slide.eq(index).addClass('current'); 732 if (this.doCss() && settings.mode === 'slide') { 733 if (usingThumb === false) { 734 $('.prev-slide').removeClass('prev-slide');
735 $('.next-slide').removeClass('next-slide'); 736 $slide.eq(index - 1).addClass('prev-slide'); 737 $slide.eq(index + 1).addClass('next-slide'); 738 } else { 739 $slide.eq(index).prevAll().removeClass('next-slide').addClass('prev-slide'); 740 $slide.eq(index).nextAll().removeClass('prev-slide').addClass('next-slide'); 741 } 742 } 743 if (settings.thumbnail === true && $children.length > 1) { 744 $thumb.removeClass('active'); 745 $thumb.eq(index).addClass('active'); 746 } 747 if (settings.controls && settings.hideControlOnEnd && settings.loop === false && $children.length > 1) { 748 var l = $children.length; 749 l = parseInt(l) - 1; 750 if (index === 0) { 751 $prev.addClass('disabled'); 752 $next.removeClass('disabled'); 753 } else if (index === l) { 754 $prev.removeClass('disabled'); 755 $next.addClass('disabled'); 756 } else { 757 $prev.add($next).removeClass('disabled'); 758 } 759 } 760 prevIndex = index; 761 lightGalleryOn === false ? settings.onOpen.call(this, plugin) : settings.onSlideAfter.call(this, plugin); 762 setTimeout(function () { 763 lightGalleryOn = true; 764 }); 765 usingThumb = false; 766 if (settings.counter) { 767 $("#lg-counter-current").text(index + 1); 768 } 769 $(window).bind('resize.lightGallery', function () { 770 setTimeout(function () { 771 $this.animateThumb(index); 772 }, 200); 773 }); 774 } 775 }; 776 plugin.isActive = function () { 777 if (isActive === true) { 778 return true; 779 } else { 780 return false; 781 } 782 783 }; 784 plugin.destroy = function (d) { 785 isActive = false; 786 d = typeof d !== 'undefined' ? false : true; 787 settings.onBeforeClose.call(this, plugin); 788 var lightGalleryOnT = lightGalleryOn; 789 lightGalleryOn = false; 790 aTiming = false; 791 aSpeed = false; 792 usingThumb = false; 793 clearInterval(interval); 794 if (d === true) { 795 $children.off('click touch touchstart'); 796 } 797 $('.light-gallery').off('mousedown mouseup'); 798 $('body').off('touchstart.lightGallery touchmove.lightGallery touchend.lightGallery'); 799 $(window).off('resize.lightGallery keyup.lightGallery'); 800 if (lightGalleryOnT === true) { 801 $gallery.addClass('fade-m'); 802 setTimeout(function () { 803 $galleryCont.remove(); 804 $('body').removeClass('light-gallery'); 805 }, 500); 806 } 807 settings.onCloseAfter.call(this, plugin); 808 }; 809 lightGallery.init(); 810 return this; 811 }; 812}(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.