1/*! lg-pager - v1.0.2 - 2017-01-22 2* http://sachinchoolur.github.io/lightGallery 3* Copyright (c) 2017 Sachin N; Licensed GPLv3 */ 4 5(function (root, factory) { 6 if (typeof define === 'function' && define.amd) { 7 // AMD. Register as an anonymous module unless amdModuleId is set 8 define(['jquery'], function (a0) { 9 return (factory(a0)); 10 }); 11 } else if (typeof exports === 'object') { 12 // Node. Does not work with strict CommonJS, but 13 // only CommonJS-like environments that support module.exports, 14 // like Node. 15 module.exports = factory(require('jquery')); 16 } else { 17 factory(jQuery); 18 } 19}(this, function ($) { 20 21(function() { 22 23 'use strict'; 24 25 var defaults = { 26 pager: false 27 }; 28 29 var Pager = function(element) { 30 31 this.core = $(element).data('lightGallery'); 32 33 this.$el = $(element); 34 this.core.s = $.extend({}, defaults, this.core.s); 35 if (this.core.s.pager && this.core.$items.length > 1) { 36 this.init(); 37 } 38 39 return this; 40 }; 41 42 Pager.prototype.init = function() { 43 var _this = this; 44 var pagerList = ''; 45 var $pagerCont; 46 var $pagerOuter; 47 var timeout; 48 49 _this.core.$outer.find('.lg').append('<div class="lg-pager-outer"></div>'); 50 51 if (_this.core.s.dynamic) { 52 for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { 53 pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + _this.core.s.dynamicEl[i].thumb + '" /></div></span>'; 54 } 55 } else { 56 _this.core.$items.each(function() { 57 58 if (!_this.core.s.exThumbImage) { 59 pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + $(this).find('img').attr('src') + '" /></div></span>'; 60 } else { 61 pagerList += '<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="' + $(this).attr(_this.core.s.exThumbImage) + '" /></div></span>'; 62 } 63 64 }); 65 } 66 67 $pagerOuter = _this.core.$outer.find('.lg-pager-outer'); 68 69 $pagerOuter.html(pagerList); 70 71 $pagerCont = _this.core.$outer.find('.lg-pager-cont'); 72 $pagerCont.on('click.lg touchend.lg', function() { 73 var _$this = $(this); 74 _this.core.index = _$this.index(); 75 _this.core.slide(_this.core.index, false, true, false); 76 }); 77 78 $pagerOuter.on('mouseover.lg', function() { 79 clearTimeout(timeout); 80 $pagerOuter.addClass('lg-pager-hover'); 81 }); 82 83 $pagerOuter.on('mouseout.lg', function() { 84 timeout = setTimeout(function() { 85 $pagerOuter.removeClass('lg-pager-hover'); 86 }); 87 }); 88 89 _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) { 90 $pagerCont.removeClass('lg-pager-active'); 91 $pagerCont.eq(index).addClass('lg-pager-active'); 92 }); 93 94 }; 95 96 Pager.prototype.destroy = function() { 97 98 }; 99 100 $.fn.lightGallery.modules.pager = Pager; 101 102})(); 103 104 105})); 106