Размер файла: 2.5Kb
- /*! lg-hash - v1.0.0 - 2016-09-20
- * http://sachinchoolur.github.io/lightGallery
- * Copyright (c) 2016 Sachin N; Licensed GPLv3 */
-
- (function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module unless amdModuleId is set
- define([], function () {
- return (factory());
- });
- } else if (typeof exports === 'object') {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory();
- } else {
- factory();
- }
- }(this, function () {
-
- (function($, window, document, undefined) {
-
- 'use strict';
-
- var defaults = {
- hash: true
- };
-
- var Hash = function(element) {
-
- this.core = $(element).data('lightGallery');
-
- this.core.s = $.extend({}, defaults, this.core.s);
-
- if (this.core.s.hash) {
- this.oldHash = window.location.hash;
- this.init();
- }
-
- return this;
- };
-
- Hash.prototype.init = function() {
- var _this = this;
- var _hash;
-
- // Change hash value on after each slide transition
- _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) {
- window.location.hash = 'lg=' + _this.core.s.galleryId + '&slide=' + index;
- });
-
- // Listen hash change and change the slide according to slide value
- $(window).on('hashchange.lg.hash', function() {
- _hash = window.location.hash;
- var _idx = parseInt(_hash.split('&slide=')[1], 10);
-
- // it galleryId doesn't exist in the url close the gallery
- if ((_hash.indexOf('lg=' + _this.core.s.galleryId) > -1)) {
- _this.core.slide(_idx, false, false);
- } else if (_this.core.lGalleryOn) {
- _this.core.destroy();
- }
-
- });
- };
-
- Hash.prototype.destroy = function() {
-
- if (!this.core.s.hash) {
- return;
- }
-
- // Reset to old hash value
- if (this.oldHash && this.oldHash.indexOf('lg=' + this.core.s.galleryId) < 0) {
- window.location.hash = this.oldHash;
- } else {
- if (history.pushState) {
- history.pushState('', document.title, window.location.pathname + window.location.search);
- } else {
- window.location.hash = '';
- }
- }
-
- this.core.$el.off('.lg.hash');
-
- };
-
- $.fn.lightGallery.modules.hash = Hash;
-
- })(jQuery, window, document);
-
-
- }));