📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
e-ticaretv5.demodesign.com.tr
/
panel
/
assets
/
plugins
/
gallery
📝
lg-zoom.js
← Geri Dön
/**! * lg-zoom.js | 1.0.1 | December 22nd 2016 * http://sachinchoolur.github.io/lg-zoom.js * Copyright (c) 2016 Sachin N; * @license GPLv3 */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.LgZoom = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ (function (global, factory) { if (typeof define === "function" && define.amd) { define([], factory); } else if (typeof exports !== "undefined") { factory(); } else { var mod = { exports: {} }; factory(); global.lgZoom = mod.exports; } })(this, function () { 'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var getUseLeft = function getUseLeft() { var useLeft = false; var isChrome = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./); if (isChrome && parseInt(isChrome[2], 10) < 54) { useLeft = true; } return useLeft; }; var zoomDefaults = { scale: 1, zoom: true, actualSize: true, enableZoomAfter: 300, useLeftForZoom: getUseLeft() }; var Zoom = function Zoom(element) { this.el = element; this.core = window.lgData[this.el.getAttribute('lg-uid')]; this.core.s = _extends({}, zoomDefaults, this.core.s); if (this.core.s.zoom && this.core.doCss()) { this.init(); // Store the zoomable timeout value just to clear it while closing this.zoomabletimeout = false; // Set the initial value center this.pageX = window.innerWidth / 2; this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop); } return this; }; Zoom.prototype.init = function () { var _this = this; var zoomIcons = '<span id="lg-zoom-in" class="lg-icon"></span><span id="lg-zoom-out" class="lg-icon"></span>'; if (_this.core.s.actualSize) { zoomIcons += '<span id="lg-actual-size" class="lg-icon"></span>'; } if (_this.core.s.useLeftForZoom) { utils.addClass(_this.core.outer, 'lg-use-left-for-zoom'); } else { utils.addClass(_this.core.outer, 'lg-use-transition-for-zoom'); } this.core.outer.querySelector('.lg-toolbar').insertAdjacentHTML('beforeend', zoomIcons); // Add zoomable class utils.on(_this.core.el, 'onSlideItemLoad.lgtmzoom', function (event) { // delay will be 0 except first time var _speed = _this.core.s.enableZoomAfter + event.detail.delay; // set _speed value 0 if gallery opened from direct url and if it is first slide if (utils.hasClass(document.body, 'lg-from-hash') && event.detail.delay) { // will execute only once _speed = 0; } else { // Remove lg-from-hash to enable starting animation. utils.removeClass(document.body, 'lg-from-hash'); } _this.zoomabletimeout = setTimeout(function () { utils.addClass(_this.core.___slide[event.detail.index], 'lg-zoomable'); }, _speed + 30); }); var scale = 1; /** * @desc Image zoom * Translate the wrap and scale the image to get better user experience * * @param {String} scaleVal - Zoom decrement/increment value */ var zoom = function zoom(scaleVal) { var image = _this.core.outer.querySelector('.lg-current .lg-image'); var _x; var _y; // Find offset manually to avoid issue after zoom var offsetX = (window.innerWidth - image.clientWidth) / 2; var offsetY = (window.innerHeight - image.clientHeight) / 2 + (document.documentElement.scrollTop || document.body.scrollTop); _x = _this.pageX - offsetX; _y = _this.pageY - offsetY; var x = (scaleVal - 1) * _x; var y = (scaleVal - 1) * _y; utils.setVendor(image, 'Transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)'); image.setAttribute('data-scale', scaleVal); if (_this.core.s.useLeftForZoom) { image.parentElement.style.left = -x + 'px'; image.parentElement.style.top = -y + 'px'; } else { utils.setVendor(image.parentElement, 'Transform', 'translate3d(-' + x + 'px, -' + y + 'px, 0)'); } image.parentElement.setAttribute('data-x', x); image.parentElement.setAttribute('data-y', y); }; var callScale = function callScale() { if (scale > 1) { utils.addClass(_this.core.outer, 'lg-zoomed'); } else { _this.resetZoom(); } if (scale < 1) { scale = 1; } zoom(scale); }; var actualSize = function actualSize(event, image, index, fromIcon) { var w = image.clientWidth; var nw; if (_this.core.s.dynamic) { nw = _this.core.s.dynamicEl[index].width || image.naturalWidth || w; } else { nw = _this.core.items[index].getAttribute('data-width') || image.naturalWidth || w; } var _scale; if (utils.hasClass(_this.core.outer, 'lg-zoomed')) { scale = 1; } else { if (nw > w) { _scale = nw / w; scale = _scale || 2; } } if (fromIcon) { _this.pageX = window.innerWidth / 2; _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop); } else { _this.pageX = event.pageX || event.targetTouches[0].pageX; _this.pageY = event.pageY || event.targetTouches[0].pageY; } callScale(); setTimeout(function () { utils.removeClass(_this.core.outer, 'lg-grabbing'); utils.addClass(_this.core.outer, 'lg-grab'); }, 10); }; var tapped = false; // event triggered after appending slide content utils.on(_this.core.el, 'onAferAppendSlide.lgtmzoom', function (event) { var index = event.detail.index; // Get the current element var image = _this.core.___slide[index].querySelector('.lg-image'); if (!_this.core.isTouch) { utils.on(image, 'dblclick', function (event) { actualSize(event, image, index); }); } if (_this.core.isTouch) { utils.on(image, 'touchstart', function (event) { if (!tapped) { tapped = setTimeout(function () { tapped = null; }, 300); } else { clearTimeout(tapped); tapped = null; actualSize(event, image, index); } event.preventDefault(); }); } }); // Update zoom on resize and orientationchange utils.on(window, 'resize.lgzoom scroll.lgzoom orientationchange.lgzoom', function () { _this.pageX = window.innerWidth / 2; _this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop); zoom(scale); }); utils.on(document.getElementById('lg-zoom-out'), 'click.lg', function () { if (_this.core.outer.querySelector('.lg-current .lg-image')) { scale -= _this.core.s.scale; callScale(); } }); utils.on(document.getElementById('lg-zoom-in'), 'click.lg', function () { if (_this.core.outer.querySelector('.lg-current .lg-image')) { scale += _this.core.s.scale; callScale(); } }); utils.on(document.getElementById('lg-actual-size'), 'click.lg', function (event) { actualSize(event, _this.core.___slide[_this.core.index].querySelector('.lg-image'), _this.core.index, true); }); // Reset zoom on slide change utils.on(_this.core.el, 'onBeforeSlide.lgtm', function () { scale = 1; _this.resetZoom(); }); // Drag option after zoom if (!_this.core.isTouch) { _this.zoomDrag(); } if (_this.core.isTouch) { _this.zoomSwipe(); } }; // Reset zoom effect Zoom.prototype.resetZoom = function () { utils.removeClass(this.core.outer, 'lg-zoomed'); for (var i = 0; i < this.core.___slide.length; i++) { if (this.core.___slide[i].querySelector('.lg-img-wrap')) { this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('style'); this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-x'); this.core.___slide[i].querySelector('.lg-img-wrap').removeAttribute('data-y'); } } for (var j = 0; j < this.core.___slide.length; j++) { if (this.core.___slide[j].querySelector('.lg-image')) { this.core.___slide[j].querySelector('.lg-image').removeAttribute('style'); this.core.___slide[j].querySelector('.lg-image').removeAttribute('data-scale'); } } // Reset pagx pagy values to center this.pageX = window.innerWidth / 2; this.pageY = window.innerHeight / 2 + (document.documentElement.scrollTop || document.body.scrollTop); }; Zoom.prototype.zoomSwipe = function () { var _this = this; var startCoords = {}; var endCoords = {}; var isMoved = false; // Allow x direction drag var allowX = false; // Allow Y direction drag var allowY = false; for (var i = 0; i < _this.core.___slide.length; i++) { /*jshint loopfunc: true */ utils.on(_this.core.___slide[i], 'touchstart.lg', function (e) { if (utils.hasClass(_this.core.outer, 'lg-zoomed')) { var image = _this.core.___slide[_this.core.index].querySelector('.lg-object'); allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight; allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth; if (allowX || allowY) { e.preventDefault(); startCoords = { x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY }; } } }); } for (var j = 0; j < _this.core.___slide.length; j++) { /*jshint loopfunc: true */ utils.on(_this.core.___slide[j], 'touchmove.lg', function (e) { if (utils.hasClass(_this.core.outer, 'lg-zoomed')) { var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap'); var distanceX; var distanceY; e.preventDefault(); isMoved = true; endCoords = { x: e.targetTouches[0].pageX, y: e.targetTouches[0].pageY }; // reset opacity and transition duration utils.addClass(_this.core.outer, 'lg-zoom-dragging'); if (allowY) { distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y); } else { distanceY = -Math.abs(_el.getAttribute('data-y')); } if (allowX) { distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x); } else { distanceX = -Math.abs(_el.getAttribute('data-x')); } if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) { if (_this.core.s.useLeftForZoom) { _el.style.left = distanceX + 'px'; _el.style.top = distanceY + 'px'; } else { utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); } } } }); } for (var k = 0; k < _this.core.___slide.length; k++) { /*jshint loopfunc: true */ utils.on(_this.core.___slide[k], 'touchend.lg', function () { if (utils.hasClass(_this.core.outer, 'lg-zoomed')) { if (isMoved) { isMoved = false; utils.removeClass(_this.core.outer, 'lg-zoom-dragging'); _this.touchendZoom(startCoords, endCoords, allowX, allowY); } } }); } }; Zoom.prototype.zoomDrag = function () { var _this = this; var startCoords = {}; var endCoords = {}; var isDraging = false; var isMoved = false; // Allow x direction drag var allowX = false; // Allow Y direction drag var allowY = false; for (var i = 0; i < _this.core.___slide.length; i++) { /*jshint loopfunc: true */ utils.on(_this.core.___slide[i], 'mousedown.lgzoom', function (e) { // execute only on .lg-object var image = _this.core.___slide[_this.core.index].querySelector('.lg-object'); allowY = image.offsetHeight * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientHeight; allowX = image.offsetWidth * image.getAttribute('data-scale') > _this.core.outer.querySelector('.lg').clientWidth; if (utils.hasClass(_this.core.outer, 'lg-zoomed')) { if (utils.hasClass(e.target, 'lg-object') && (allowX || allowY)) { e.preventDefault(); startCoords = { x: e.pageX, y: e.pageY }; isDraging = true; // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 _this.core.outer.scrollLeft += 1; _this.core.outer.scrollLeft -= 1; utils.removeClass(_this.core.outer, 'lg-grab'); utils.addClass(_this.core.outer, 'lg-grabbing'); } } }); } utils.on(window, 'mousemove.lgzoom', function (e) { if (isDraging) { var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap'); var distanceX; var distanceY; isMoved = true; endCoords = { x: e.pageX, y: e.pageY }; // reset opacity and transition duration utils.addClass(_this.core.outer, 'lg-zoom-dragging'); if (allowY) { distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y); } else { distanceY = -Math.abs(_el.getAttribute('data-y')); } if (allowX) { distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x); } else { distanceX = -Math.abs(_el.getAttribute('data-x')); } if (_this.core.s.useLeftForZoom) { _el.style.left = distanceX + 'px'; _el.style.top = distanceY + 'px'; } else { utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); } } }); utils.on(window, 'mouseup.lgzoom', function (e) { if (isDraging) { isDraging = false; utils.removeClass(_this.core.outer, 'lg-zoom-dragging'); // Fix for chrome mouse move on click if (isMoved && (startCoords.x !== endCoords.x || startCoords.y !== endCoords.y)) { endCoords = { x: e.pageX, y: e.pageY }; _this.touchendZoom(startCoords, endCoords, allowX, allowY); } isMoved = false; } utils.removeClass(_this.core.outer, 'lg-grabbing'); utils.addClass(_this.core.outer, 'lg-grab'); }); }; Zoom.prototype.touchendZoom = function (startCoords, endCoords, allowX, allowY) { var _this = this; var _el = _this.core.___slide[_this.core.index].querySelector('.lg-img-wrap'); var image = _this.core.___slide[_this.core.index].querySelector('.lg-object'); var distanceX = -Math.abs(_el.getAttribute('data-x')) + (endCoords.x - startCoords.x); var distanceY = -Math.abs(_el.getAttribute('data-y')) + (endCoords.y - startCoords.y); var minY = (_this.core.outer.querySelector('.lg').clientHeight - image.offsetHeight) / 2; var maxY = Math.abs(image.offsetHeight * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientHeight + minY); var minX = (_this.core.outer.querySelector('.lg').clientWidth - image.offsetWidth) / 2; var maxX = Math.abs(image.offsetWidth * Math.abs(image.getAttribute('data-scale')) - _this.core.outer.querySelector('.lg').clientWidth + minX); if (Math.abs(endCoords.x - startCoords.x) > 15 || Math.abs(endCoords.y - startCoords.y) > 15) { if (allowY) { if (distanceY <= -maxY) { distanceY = -maxY; } else if (distanceY >= -minY) { distanceY = -minY; } } if (allowX) { if (distanceX <= -maxX) { distanceX = -maxX; } else if (distanceX >= -minX) { distanceX = -minX; } } if (allowY) { _el.setAttribute('data-y', Math.abs(distanceY)); } else { distanceY = -Math.abs(_el.getAttribute('data-y')); } if (allowX) { _el.setAttribute('data-x', Math.abs(distanceX)); } else { distanceX = -Math.abs(_el.getAttribute('data-x')); } if (_this.core.s.useLeftForZoom) { _el.style.left = distanceX + 'px'; _el.style.top = distanceY + 'px'; } else { utils.setVendor(_el, 'Transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); } } }; Zoom.prototype.destroy = function () { var _this = this; // Unbind all events added by lightGallery zoom plugin utils.off(_this.core.el, '.lgzoom'); utils.off(window, '.lgzoom'); for (var i = 0; i < _this.core.___slide.length; i++) { utils.off(_this.core.___slide[i], '.lgzoom'); } utils.off(_this.core.el, '.lgtmzoom'); _this.resetZoom(); clearTimeout(_this.zoomabletimeout); _this.zoomabletimeout = false; }; window.lgModules.zoom = Zoom; }); },{}]},{},[1])(1) });
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula