Update js
-jquery -lightgallery
This commit is contained in:
@@ -1,191 +1,206 @@
|
||||
/*! lightgallery - v1.2.14 - 2016-01-18
|
||||
* http://sachinchoolur.github.io/lightGallery/
|
||||
* Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */
|
||||
/**
|
||||
* Autoplay Plugin
|
||||
* @version 1.2.0
|
||||
* @author Sachin N - @sachinchoolur
|
||||
* @license MIT License (MIT)
|
||||
*/
|
||||
|
||||
(function($, window, document, undefined) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var defaults = {
|
||||
autoplay: false,
|
||||
pause: 5000,
|
||||
progressBar: true,
|
||||
fourceAutoplay: false,
|
||||
autoplayControls: true,
|
||||
appendAutoplayControlsTo: '.lg-toolbar'
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates the autoplay plugin.
|
||||
* @param {object} element - lightGallery element
|
||||
*/
|
||||
var Autoplay = function(element) {
|
||||
|
||||
this.core = $(element).data('lightGallery');
|
||||
|
||||
this.$el = $(element);
|
||||
|
||||
// Execute only if items are above 1
|
||||
if (this.core.$items.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.core.s = $.extend({}, defaults, this.core.s);
|
||||
this.interval = false;
|
||||
|
||||
// Identify if slide happened from autoplay
|
||||
this.fromAuto = true;
|
||||
|
||||
// Identify if autoplay canceled from touch/drag
|
||||
this.canceledOnTouch = false;
|
||||
|
||||
// save fourceautoplay value
|
||||
this.fourceAutoplayTemp = this.core.s.fourceAutoplay;
|
||||
|
||||
// do not allow progress bar if browser does not support css3 transitions
|
||||
if (!this.core.doCss()) {
|
||||
this.core.s.progressBar = false;
|
||||
}
|
||||
|
||||
this.init();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
Autoplay.prototype.init = function() {
|
||||
var _this = this;
|
||||
|
||||
// append autoplay controls
|
||||
if (_this.core.s.autoplayControls) {
|
||||
_this.controls();
|
||||
}
|
||||
|
||||
// Create progress bar
|
||||
if (_this.core.s.progressBar) {
|
||||
_this.core.$outer.find('.lg').append('<div class="lg-progress-bar"><div class="lg-progress"></div></div>');
|
||||
}
|
||||
|
||||
// set progress
|
||||
_this.progress();
|
||||
|
||||
// Start autoplay
|
||||
if (_this.core.s.autoplay) {
|
||||
_this.startlAuto();
|
||||
}
|
||||
|
||||
// cancel interval on touchstart and dragstart
|
||||
_this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() {
|
||||
if (_this.interval) {
|
||||
_this.cancelAuto();
|
||||
_this.canceledOnTouch = true;
|
||||
}
|
||||
});
|
||||
|
||||
// restore autoplay if autoplay canceled from touchstart / dragstart
|
||||
_this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() {
|
||||
if (!_this.interval && _this.canceledOnTouch) {
|
||||
_this.startlAuto();
|
||||
_this.canceledOnTouch = false;
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
Autoplay.prototype.progress = function() {
|
||||
|
||||
var _this = this;
|
||||
var _$progressBar;
|
||||
var _$progress;
|
||||
|
||||
_this.$el.on('onBeforeSlide.lg.tm', function() {
|
||||
|
||||
// start progress bar animation
|
||||
if (_this.core.s.progressBar && _this.fromAuto) {
|
||||
_$progressBar = _this.core.$outer.find('.lg-progress-bar');
|
||||
_$progress = _this.core.$outer.find('.lg-progress');
|
||||
if (_this.interval) {
|
||||
_$progress.removeAttr('style');
|
||||
_$progressBar.removeClass('lg-start');
|
||||
setTimeout(function() {
|
||||
_$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');
|
||||
_$progressBar.addClass('lg-start');
|
||||
}, 20);
|
||||
}
|
||||
}
|
||||
|
||||
// Remove setinterval if slide is triggered manually and fourceautoplay is false
|
||||
if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {
|
||||
_this.cancelAuto();
|
||||
}
|
||||
|
||||
_this.fromAuto = false;
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
// Manage autoplay via play/stop buttons
|
||||
Autoplay.prototype.controls = function() {
|
||||
var _this = this;
|
||||
var _html = '<span class="lg-autoplay-button lg-icon"></span>';
|
||||
|
||||
// Append autoplay controls
|
||||
$(this.core.s.appendAutoplayControlsTo).append(_html);
|
||||
|
||||
_this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() {
|
||||
if ($(_this.core.$outer).hasClass('lg-show-autoplay')) {
|
||||
_this.cancelAuto();
|
||||
_this.core.s.fourceAutoplay = false;
|
||||
} else {
|
||||
if (!_this.interval) {
|
||||
_this.startlAuto();
|
||||
_this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Autostart gallery
|
||||
Autoplay.prototype.startlAuto = function() {
|
||||
var _this = this;
|
||||
|
||||
_this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');
|
||||
_this.core.$outer.addClass('lg-show-autoplay');
|
||||
_this.core.$outer.find('.lg-progress-bar').addClass('lg-start');
|
||||
|
||||
_this.interval = setInterval(function() {
|
||||
if (_this.core.index + 1 < _this.core.$items.length) {
|
||||
_this.core.index = _this.core.index;
|
||||
} else {
|
||||
_this.core.index = -1;
|
||||
}
|
||||
|
||||
_this.core.index++;
|
||||
_this.fromAuto = true;
|
||||
_this.core.slide(_this.core.index, false, false);
|
||||
}, _this.core.s.speed + _this.core.s.pause);
|
||||
};
|
||||
|
||||
// cancel Autostart
|
||||
Autoplay.prototype.cancelAuto = function() {
|
||||
clearInterval(this.interval);
|
||||
this.interval = false;
|
||||
this.core.$outer.find('.lg-progress').removeAttr('style');
|
||||
this.core.$outer.removeClass('lg-show-autoplay');
|
||||
this.core.$outer.find('.lg-progress-bar').removeClass('lg-start');
|
||||
};
|
||||
|
||||
Autoplay.prototype.destroy = function() {
|
||||
|
||||
this.cancelAuto();
|
||||
this.core.$outer.find('.lg-progress-bar').remove();
|
||||
};
|
||||
|
||||
$.fn.lightGallery.modules.autoplay = Autoplay;
|
||||
|
||||
})(jQuery, window, document);
|
||||
/*! lg-autoplay - v1.2.1 - 2020-06-13
|
||||
* http://sachinchoolur.github.io/lightGallery
|
||||
* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
|
||||
|
||||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(['jquery'], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function ($) {
|
||||
|
||||
|
||||
(function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var defaults = {
|
||||
autoplay: false,
|
||||
pause: 5000,
|
||||
progressBar: true,
|
||||
fourceAutoplay: false,
|
||||
autoplayControls: true,
|
||||
appendAutoplayControlsTo: '.lg-toolbar'
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates the autoplay plugin.
|
||||
* @param {object} element - lightGallery element
|
||||
*/
|
||||
var Autoplay = function(element) {
|
||||
|
||||
this.core = $(element).data('lightGallery');
|
||||
|
||||
this.$el = $(element);
|
||||
|
||||
// Execute only if items are above 1
|
||||
if (this.core.$items.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.core.s = $.extend({}, defaults, this.core.s);
|
||||
this.interval = false;
|
||||
|
||||
// Identify if slide happened from autoplay
|
||||
this.fromAuto = true;
|
||||
|
||||
// Identify if autoplay canceled from touch/drag
|
||||
this.canceledOnTouch = false;
|
||||
|
||||
// save fourceautoplay value
|
||||
this.fourceAutoplayTemp = this.core.s.fourceAutoplay;
|
||||
|
||||
// do not allow progress bar if browser does not support css3 transitions
|
||||
if (!this.core.doCss()) {
|
||||
this.core.s.progressBar = false;
|
||||
}
|
||||
|
||||
this.init();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
Autoplay.prototype.init = function() {
|
||||
var _this = this;
|
||||
|
||||
// append autoplay controls
|
||||
if (_this.core.s.autoplayControls) {
|
||||
_this.controls();
|
||||
}
|
||||
|
||||
// Create progress bar
|
||||
if (_this.core.s.progressBar) {
|
||||
_this.core.$outer.find('.lg').append('<div class="lg-progress-bar"><div class="lg-progress"></div></div>');
|
||||
}
|
||||
|
||||
// set progress
|
||||
_this.progress();
|
||||
|
||||
// Start autoplay
|
||||
if (_this.core.s.autoplay) {
|
||||
_this.$el.one('onSlideItemLoad.lg.tm', function() {
|
||||
_this.startlAuto();
|
||||
});
|
||||
}
|
||||
|
||||
// cancel interval on touchstart and dragstart
|
||||
_this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() {
|
||||
if (_this.interval) {
|
||||
_this.cancelAuto();
|
||||
_this.canceledOnTouch = true;
|
||||
}
|
||||
});
|
||||
|
||||
// restore autoplay if autoplay canceled from touchstart / dragstart
|
||||
_this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() {
|
||||
if (!_this.interval && _this.canceledOnTouch) {
|
||||
_this.startlAuto();
|
||||
_this.canceledOnTouch = false;
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
Autoplay.prototype.progress = function() {
|
||||
|
||||
var _this = this;
|
||||
var _$progressBar;
|
||||
var _$progress;
|
||||
|
||||
_this.$el.on('onBeforeSlide.lg.tm', function() {
|
||||
|
||||
// start progress bar animation
|
||||
if (_this.core.s.progressBar && _this.fromAuto) {
|
||||
_$progressBar = _this.core.$outer.find('.lg-progress-bar');
|
||||
_$progress = _this.core.$outer.find('.lg-progress');
|
||||
if (_this.interval) {
|
||||
_$progress.removeAttr('style');
|
||||
_$progressBar.removeClass('lg-start');
|
||||
setTimeout(function() {
|
||||
_$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');
|
||||
_$progressBar.addClass('lg-start');
|
||||
}, 20);
|
||||
}
|
||||
}
|
||||
|
||||
// Remove setinterval if slide is triggered manually and fourceautoplay is false
|
||||
if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {
|
||||
_this.cancelAuto();
|
||||
}
|
||||
|
||||
_this.fromAuto = false;
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
// Manage autoplay via play/stop buttons
|
||||
Autoplay.prototype.controls = function() {
|
||||
var _this = this;
|
||||
var _html = '<button type="button" aria-label="Toggle autoplay" class="lg-autoplay-button lg-icon"></button>';
|
||||
|
||||
// Append autoplay controls
|
||||
$(this.core.s.appendAutoplayControlsTo).append(_html);
|
||||
|
||||
_this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() {
|
||||
if ($(_this.core.$outer).hasClass('lg-show-autoplay')) {
|
||||
_this.cancelAuto();
|
||||
_this.core.s.fourceAutoplay = false;
|
||||
} else {
|
||||
if (!_this.interval) {
|
||||
_this.startlAuto();
|
||||
_this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Autostart gallery
|
||||
Autoplay.prototype.startlAuto = function() {
|
||||
var _this = this;
|
||||
|
||||
_this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');
|
||||
_this.core.$outer.addClass('lg-show-autoplay');
|
||||
_this.core.$outer.find('.lg-progress-bar').addClass('lg-start');
|
||||
|
||||
_this.interval = setInterval(function() {
|
||||
if (_this.core.index + 1 < _this.core.$items.length) {
|
||||
_this.core.index++;
|
||||
} else {
|
||||
_this.core.index = 0;
|
||||
}
|
||||
|
||||
_this.fromAuto = true;
|
||||
_this.core.slide(_this.core.index, false, false, 'next');
|
||||
}, _this.core.s.speed + _this.core.s.pause);
|
||||
};
|
||||
|
||||
// cancel Autostart
|
||||
Autoplay.prototype.cancelAuto = function() {
|
||||
clearInterval(this.interval);
|
||||
this.interval = false;
|
||||
this.core.$outer.find('.lg-progress').removeAttr('style');
|
||||
this.core.$outer.removeClass('lg-show-autoplay');
|
||||
this.core.$outer.find('.lg-progress-bar').removeClass('lg-start');
|
||||
};
|
||||
|
||||
Autoplay.prototype.destroy = function() {
|
||||
|
||||
this.cancelAuto();
|
||||
this.core.$outer.find('.lg-progress-bar').remove();
|
||||
};
|
||||
|
||||
$.fn.lightGallery.modules.autoplay = Autoplay;
|
||||
|
||||
})();
|
||||
|
||||
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user