jquery.magnify
Advanced tools
Comparing version 1.3.1 to 1.3.2
@@ -9,3 +9,3 @@ /*! | ||
* | ||
* jquery.magnify - v1.3.1 | ||
* jquery.magnify - v1.3.2 | ||
* A jQuery plugin to view images just like in windows | ||
@@ -18,5 +18,5 @@ * https://github.com/nzbin/magnify#readme | ||
*/ | ||
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){"use strict";function i(i){return t(i).attr("data-src")?t(i).attr("data-src"):t(i).attr("href")}function e(t){var i=t.match(/\d+/g);return parseFloat(i[0])}function a(t,i,e,a){var s=a?t.h:t.w,o=a?t.w:t.h;(o>i.h||s>i.w)&&e.addClass("is-grab"),o<=i.h&&s<=i.w&&e.removeClass("is-grab")}function s(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}function o(){return"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 8.0")>0||"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 7.0")>0}var n=t(window),h=t(document),r=s()?"touchstart":"mousedown",l=s()?"touchmove":"mousemove",g=s()?"touchend":"mouseup",c=".magnify",m={draggable:!0,resizable:!0,movable:!0,keyboard:!0,title:!0,modalWidth:320,modalHeight:320,fixedContent:!0,fixedModalSize:!1,initMaximized:!1,gapThreshold:.02,ratioThreshold:.1,minRatio:.05,maxRatio:16,headToolbar:["maximize","close"],footToolbar:["zoomIn","zoomOut","prev","fullscreen","next","actualSize","rotateRight"],icons:{minimize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M1024 749.714v109.714c0 50.286 -41.143 91.429-91.429 91.429h-841.143c-50.286 0-91.429-41.143 -91.429-91.429v-109.714c0-50.286 41.143-91.429 91.429-91.429 h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',maximize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M146.286 804.571h731.429v-438.857 h-731.429v438.857zM1024 164.571v694.857c0 50.286-41.143 91.429 -91.429 91.429h-841.143c-50.286 0-91.429-41.143-91.429-91.429v -694.857c0-50.286 41.143-91.429 91.429-91.429h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',close:'<svg viewBox="0 0 804.5714285714286 1024" class="svg-inline-icon"> <path fill="currentColor" d="M741.714 755.429c0 14.286-5.714 28.571-16 38.857l-77.714 77.714c-10.286 10.286-24.571 16-38.857 16 s-28.571-5.714-38.857-16l-168-168-168 168c-10.286 10.286-24.571 16 -38.857 16s-28.571-5.714-38.857-16l-77.714-77.714c-10.286-10.286 -16-24.571-16-38.857s5.714-28.571 16-38.857l168-168-168-168c-10.286 -10.286-16-24.571-16-38.857s5.714-28.571 16-38.857l77.714-77.714 c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l168 168 168-168c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l77.714 77.714c10.286 10.286 16 24.571 16 38.857s-5.714 28.571 -16 38.857l-168 168 168 168c10.286 10.286 16 24.571 16 38.857z"></path> </svg>',zoomIn:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-128v128c0 9.714-8.571 18.286-18.286 18.286 h-36.571c-9.714 0-18.286-8.571-18.286-18.286v-128h-128c-9.714 0 -18.286-8.571-18.286-18.286v-36.571c0-9.714 8.571-18.286 18.286 -18.286h128v-128c0-9.714 8.571-18.286 18.286-18.286h36.571c9.714 0 18.286 8.571 18.286 18.286v128h128c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857 -256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857 c0 40.571-32.571 73.143-73.143 73.143-19.429 0-38.286-8-51.429 -21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857 -222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228 l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',zoomOut:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-329.143c-9.714 0-18.286-8.571-18.286-18.286 v-36.571c0-9.714 8.571-18.286 18.286-18.286h329.143c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256 s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256z M950.857 950.857c0 40.571-32.571 73.143-73.143 73.143-19.429 0 -38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857 -228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143 -70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',prev:'<svg viewBox="0 0 914.2857142857142 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512v73.143c0 38.857-25.714 73.143-66.857 73.143h-402.286l167.429 168c13.714 13.143 21.714 32 21.714 51.429s-8 38.286-21.714 51.429l-42.857 43.429c-13.143 13.143 -32 21.143-51.429 21.143s-38.286-8-52-21.143l-372-372.571c-13.143 -13.143-21.143-32-21.143-51.429s8-38.286 21.143-52l372-371.429c13.714 -13.714 32.571-21.714 52-21.714s37.714 8 51.429 21.714l42.857 42.286 c13.714 13.714 21.714 32.571 21.714 52s-8 38.286-21.714 52l-167.429 167.429h402.286c41.143 0 66.857 34.286 66.857 73.143z"></path> </svg>',next:'<svg viewBox="0 0 841.1428571428571 1024" class="svg-inline-icon"> <path fill="currentColor" d="M841.143 548.571c0 19.429-7.429 38.286 -21.143 52l-372 372c-13.714 13.143-32.571 21.143-52 21.143s-37.714 -8-51.429-21.143l-42.857-42.857c-13.714-13.714-21.714-32.571-21.714 -52s8-38.286 21.714-52l167.429-167.429h-402.286c-41.143 0-66.857 -34.286-66.857-73.143v-73.143c0-38.857 25.714-73.143 66.857-73.143 h402.286l-167.429-168c-13.714-13.143-21.714-32-21.714-51.429s8 -38.286 21.714-51.429l42.857-42.857c13.714-13.714 32-21.714 51.429 -21.714s38.286 8 52 21.714l372 372c13.714 13.143 21.143 32 21.143 51.429z"></path> </svg>',fullscreen:'<svg viewBox="0 0 1097.142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M365.714 329.143c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143 -109.714 109.714-109.714 109.714 49.143 109.714 109.714z M950.857 548.571v256h-804.571v-109.714l182.857-182.857 91.429 91.429 292.571-292.571zM1005.714 146.286h-914.286c-9.714 0 -18.286 8.571-18.286 18.286v694.857c0 9.714 8.571 18.286 18.286 18.286h914.286c9.714 0 18.286-8.571 18.286-18.286 v-694.857c0-9.714-8.571-18.286-18.286-18.286zM1097.143 164.571 v694.857c0 50.286-41.143 91.429-91.429 91.429h-914.286c-50.286 0-91.429-41.143-91.429-91.429v-694.857c0-50.286 41.143-91.429 91.429-91.429h914.286c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',actualSize:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M733.143 309.143l-202.857 202.857 202.857 202.857 82.286-82.286c10.286-10.857 26.286-13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714v256c0 20-16.571 36.571 -36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857-5.714 -13.143-2.857-29.143 8-39.429l82.286-82.286-202.857-202.857 -202.857 202.857 82.286 82.286c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857h-256c-20 0 -36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857 -33.714 13.143-5.714 29.143-2.857 39.429 8l82.286 82.286 202.857-202.857-202.857-202.857-82.286 82.286c-6.857 6.857 -16 10.857-25.714 10.857-4.571 0-9.714-1.143-13.714-2.857 -13.714-5.714-22.857-18.857-22.857-33.714v-256c0-20 16.571 -36.571 36.571-36.571h256c14.857 0 28 9.143 33.714 22.857 5.714 13.143 2.857 29.143-8 39.429l-82.286 82.286 202.857 202.857 202.857-202.857-82.286-82.286c-10.857-10.286-13.714 -26.286-8-39.429 5.714-13.714 18.857-22.857 33.714-22.857h256 c20 0 36.571 16.571 36.571 36.571v256c0 14.857-9.143 28-22.286 33.714-4.571 1.714-9.714 2.857-14.286 2.857-9.714 0-18.857-4 -25.714-10.857z"></path> </svg>',rotateLeft:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512c0 241.714-197.143 438.857-438.857 438.857-130.857 0-254.286-57.714-337.714-158.286 -5.714-7.429-5.143-18.286 1.143-24.571l78.286-78.857c4-3.429 9.143-5.143 14.286-5.143 5.143 0.571 10.286 2.857 13.143 6.857 56 72.571 140 113.714 230.857 113.714 161.143 0 292.571-131.429 292.571-292.571s-131.429-292.571-292.571-292.571c-74.857 0 -145.714 28.571-198.857 78.286l78.286 78.857c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857 h-256c-20 0-36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857-33.714 13.143-5.714 29.143-2.857 39.429 8l74.286 73.714 c80.571-76 189.714-121.143 302.286-121.143 241.714 0 438.857 197.143 438.857 438.857z"></path> </svg>',rotateRight:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857 -5.714-13.143-2.857-29.143 8-39.429l78.857-78.857c-53.714 -49.714-124.571-78.286-199.429-78.286-161.143 0-292.571 131.429-292.571 292.571s131.429 292.571 292.571 292.571 c90.857 0 174.857-41.143 230.857-113.714 2.857-4 8-6.286 13.143-6.857 5.143 0 10.286 1.714 14.286 5.143l78.286 78.857 c6.857 6.286 6.857 17.143 1.143 24.571-83.429 100.571-206.857 158.286-337.714 158.286-241.714 0-438.857-197.143-438.857 -438.857s197.143-438.857 438.857-438.857c112.571 0 221.714 45.143 302.286 121.143l74.286-73.714c10.286-10.857 26.286 -13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714z"></path> </svg>'},i18n:{minimize:"minimize",maximize:"maximize",close:"close",zoomIn:"zoom-in(+)",zoomOut:"zoom-out(-)",prev:"prev(←)",next:"next(→)",fullscreen:"fullscreen",actualSize:"actual-size(Ctrl+Alt+0)",rotateLeft:"rotate-left(Ctrl+,)",rotateRight:"rotate-right(Ctrl+.)"},multiInstances:!0,initEvent:"click",initAnimation:!0,fixedModalPos:!1,zIndex:1090,dragHandle:!1,callbacks:{beforeOpen:t.noop,opened:t.noop,beforeClose:t.noop,closed:t.noop,beforeChange:t.noop,changed:t.noop}},f={isMoving:!1,isResizing:!1,zIndex:m.zIndex},d=null,p=function(i,e){this.options=t.extend(!0,{},m,e),e&&t.isArray(e.footToolbar)&&(this.options.footToolbar=e.footToolbar),e&&t.isArray(e.headToolbar)&&(this.options.headToolbar=e.headToolbar),this.$el=t(i),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0,this.isDoResize=!1,this.imageData={},this.modalData={width:null,height:null,left:null,top:null},this.init(i,this.options)};p.prototype={init:function(e,a){var s=i(e);this.groupName=null;var n=t(e).attr("data-group"),r=h.find('[data-group="'+n+'"]');void 0!==n?(this.groupName=n,this.getImgGroup(r,s)):this.getImgGroup(d.not("[data-group]"),s),this.open(),this.loadImg(s),a.draggable&&this.draggable(this.$magnify,this.dragHandle,".magnify-button"),a.movable&&this.movable(this.$stage,o()?".magnify-image":this.$image),a.resizable&&this.resizable(this.$magnify,this.$stage,o()?".magnify-image":this.$image,a.modalWidth,a.modalHeight)},_creatBtns:function(i,e){var a="";return t.each(i,function(t,i){a+=e[i]}),a},_creatTitle:function(){return this.options.title?'<div class="magnify-title"></div>':""},creatDOM:function(){var t={minimize:'<button class="magnify-button magnify-button-minimize" title="'+this.options.i18n.minimize+'">'+this.options.icons.minimize+"</button>",maximize:'<button class="magnify-button magnify-button-maximize" title="'+this.options.i18n.maximize+'">'+this.options.icons.maximize+"</button>",close:'<button class="magnify-button magnify-button-close" title="'+this.options.i18n.close+'">'+this.options.icons.close+"</button>",zoomIn:'<button class="magnify-button magnify-button-zoom-in" title="'+this.options.i18n.zoomIn+'">'+this.options.icons.zoomIn+"</button>",zoomOut:'<button class="magnify-button magnify-button-zoom-out" title="'+this.options.i18n.zoomOut+'">'+this.options.icons.zoomOut+"</button>",prev:'<button class="magnify-button magnify-button-prev" title="'+this.options.i18n.prev+'">'+this.options.icons.prev+"</button>",next:'<button class="magnify-button magnify-button-next" title="'+this.options.i18n.next+'">'+this.options.icons.next+"</button>",fullscreen:'<button class="magnify-button magnify-button-fullscreen" title="'+this.options.i18n.fullscreen+'">'+this.options.icons.fullscreen+"</button>",actualSize:'<button class="magnify-button magnify-button-actual-size" title="'+this.options.i18n.actualSize+'">'+this.options.icons.actualSize+"</button>",rotateLeft:'<button class="magnify-button magnify-button-rotate-left" title="'+this.options.i18n.rotateLeft+'">'+this.options.icons.rotateLeft+"</button>",rotateRight:'<button class="magnify-button magnify-button-rotate-right" title="'+this.options.i18n.rotateRight+'">'+this.options.icons.rotateRight+"</button>"};return'<div class="magnify-modal"> <div class="magnify-header"> <div class="magnify-toolbar magnify-head-toolbar">'+this._creatBtns(this.options.headToolbar,t)+" </div>"+this._creatTitle()+' </div> <div class="magnify-stage"> <img class="magnify-image" src="" alt="" /> </div> <div class="magnify-footer"> <div class="magnify-toolbar magnify-foot-toolbar">'+this._creatBtns(this.options.footToolbar,t)+" </div> </div> </div>"},build:function(){var i=this.creatDOM(),e=t(i);this.$magnify=e,this.$header=e.find(".magnify-header"),this.$headToolbar=e.find(".magnify-head-toolbar"),this.$footer=e.find(".magnify-footer"),this.$footToolbar=e.find(".magnify-foot-toolbar"),this.$stage=e.find(".magnify-stage"),this.$title=e.find(".magnify-title"),this.$image=e.find(".magnify-image"),this.$close=e.find(".magnify-button-close"),this.$maximize=e.find(".magnify-button-maximize"),this.$minimize=e.find(".magnify-button-minimize"),this.$zoomIn=e.find(".magnify-button-zoom-in"),this.$zoomOut=e.find(".magnify-button-zoom-out"),this.$actualSize=e.find(".magnify-button-actual-size"),this.$fullscreen=e.find(".magnify-button-fullscreen"),this.$rotateLeft=e.find(".magnify-button-rotate-left"),this.$rotateRight=e.find(".magnify-button-rotate-right"),this.$prev=e.find(".magnify-button-prev"),this.$next=e.find(".magnify-button-next"),this.$stage.addClass("stage-ready"),this.$image.addClass("image-ready"),this.$magnify.css("z-index",f.zIndex),this.options.dragHandle&&".magnify-modal"!==this.options.dragHandle?this.dragHandle=this.$magnify.find(this.options.dragHandle):this.dragHandle=this.$magnify},open:function(){if(this.options.multiInstances||t(".magnify-modal").eq(0).remove(),!t(".magnify-modal").length&&this.options.fixedContent&&(t("html").css({overflow:"hidden"}),document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight))){var i=function(){var t=document.createElement("div");t.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(t);var i=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),i}();i&&t("html").css({"padding-right":i})}this.build(),this._triggerHook("beforeOpen",this.$el),t("body").append(this.$magnify),this.addEvents(),this.setModalPos(this.$magnify),this._triggerHook("opened",this.$el)},close:function(i){this._triggerHook("beforeClose",this.$el),this.$magnify.remove(),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0;var e=!t(".magnify-modal").length;e&&this.options.fixedContent&&t("html").css({overflow:"","padding-right":""}),e&&this.options.multiInstances&&(f.zIndex=this.options.zIndex),t(".magnify-modal").length||(h.off("keydown.magnify"),n.off("resize.magnify")),this._triggerHook("closed",this.$el)},setModalPos:function(t){var i=n.width(),e=n.height(),a=h.scrollLeft(),s=h.scrollTop(),o=this.options.modalWidth,r=this.options.modalHeight;this.options.initMaximized?(t.addClass("magnify-maximize"),t.css({width:"100%",height:"100%",left:0,top:0}),this.isOpened=!0,this.isMaximized=!0):t.css({width:o,height:r,left:(i-o)/2+a+"px",top:(e-r)/2+s+"px"})},setModalSize:function(t){var i=this,a=n.width(),s=n.height(),o=h.scrollLeft(),r=h.scrollTop(),l={left:this.$stage.css("left"),right:this.$stage.css("right"),top:this.$stage.css("top"),bottom:this.$stage.css("bottom"),borderLeft:this.$stage.css("border-left-width"),borderRight:this.$stage.css("border-right-width"),borderTop:this.$stage.css("border-top-width"),borderBottom:this.$stage.css("border-bottom-width")},g=t.width+e(l.left)+e(l.right)+e(l.borderLeft)+e(l.borderRight),c=t.height+e(l.top)+e(l.bottom)+e(l.borderTop)+e(l.borderBottom),m=(this.options.gapThreshold>0?this.options.gapThreshold:0)+1,f=Math.min(a/(g*m),s/(c*m),1),d=Math.max(g*f,this.options.modalWidth),p=Math.max(c*f,this.options.modalHeight),u={width:(d=this.options.fixedModalSize?this.options.modalWidth:Math.round(d))+"px",height:(p=this.options.fixedModalSize?this.options.modalHeight:Math.round(p))+"px",left:(a-d)/2+o+"px",top:(s-p)/2+r+"px"};this.options.initAnimation?this.$magnify.animate(u,function(){i.setImageSize(t)}):(this.$magnify.css(u),this.setImageSize(t)),this.isOpened=!0},getImageScaleToStage:function(t,i){return this.isRotated?Math.min(t/this.img.height,i/this.img.width,1):Math.min(t/this.img.width,i/this.img.height,1)},setImageSize:function(i){var e=o()?this.$stage.find(".magnify-image"):this.$image,s={w:this.$stage.width(),h:this.$stage.height()},n=this.getImageScaleToStage(s.w,s.h);e.css({width:Math.ceil(i.width*n)+"px",height:Math.ceil(i.height*n)+"px",left:(s.w-Math.ceil(i.width*n))/2+"px",top:(s.h-Math.ceil(i.height*n))/2+"px"}),o()&&e.find("group").css({width:Math.floor(i.width*n)+"px",height:Math.floor(i.height*n)+"px"}),t.extend(this.imageData,{initWidth:i.width*n,initHeight:i.height*n,initLeft:(s.w-i.width*n)/2,initTop:(s.h-i.height*n)/2,width:i.width*n,height:i.height*n,left:(s.w-i.width*n)/2,top:(s.h-i.height*n)/2}),a({w:e.width(),h:e.height()},{w:this.$stage.width(),h:this.$stage.height()},this.$stage,this.isRotated),this.$magnify.find(".magnify-loader").remove(),this.options.initAnimation&&e.fadeIn()},loadImg:function(t){var i=this;this.$magnify.append('<div class="magnify-loader"></div>'),this.options.initAnimation&&this.$image.hide(),o()?this.$stage.html('<img class="magnify-image" id="magnify-image" src="'+t+'" alt="" />'):this.$image.attr("src",t),function(t,i,e){var a=new Image;a.onload=function(){i(a)},a.onerror=function(){e(a)},a.src=t}(t,function(t){i.img=t,i.imageData={originalWidth:t.width,originalHeight:t.height},i.isMaximized||i.isOpened&&i.options.fixedModalPos?i.setImageSize(t):i.setModalSize(t),i.$stage.removeClass("stage-ready"),i.$image.removeClass("image-ready")},function(){i.$magnify.find(".magnify-loader").remove()}),this.options.title&&this.setImgTitle(t)},getImgGroup:function(e,a){var s=this;s.groupData=[],t(e).each(function(e,o){var n=i(this);s.groupData.push({src:n,caption:t(this).attr("data-caption")}),a===n&&(s.groupIndex=e)})},setImgTitle:function(t){var i=this.groupIndex,e=(e=this.groupData[i].caption)||function(t){return t.replace(/^.*?\/*([^/?]*)\.[a-z]+(\?.+|$)/gi,"$1")}(t);this.$title.html(e)},jump:function(t){this.groupIndex=this.groupIndex+t,this.jumpTo(this.groupIndex)},jumpTo:function(t){(t%=this.groupData.length)>=0?t%=this.groupData.length:t<0&&(t=(this.groupData.length+t)%this.groupData.length),this.groupIndex=t,this._triggerHook("beforeChange",t),this.loadImg(this.groupData[t].src),this._triggerHook("changed",t)},wheel:function(t){t.preventDefault();var i=1;t.originalEvent.deltaY?i=t.originalEvent.deltaY>0?1:-1:t.originalEvent.wheelDelta?i=-t.originalEvent.wheelDelta/120:t.originalEvent.detail&&(i=t.originalEvent.detail>0?1:-1);var e=-i*this.options.ratioThreshold,a={x:t.originalEvent.clientX-this.$stage.offset().left+h.scrollLeft(),y:t.originalEvent.clientY-this.$stage.offset().top+h.scrollTop()};this.zoom(e,a,t)},zoom:function(t,i,e){this.$image=o()?this.$stage.find(".magnify-image"):this.$image,t=t<0?1/(1-t):1+t,(t=this.$image.width()/this.imageData.originalWidth*t)>this.options.maxRatio||t<this.options.minRatio||this.zoomTo(t,i,e)},zoomTo:function(i,e,s){var n=o()?this.$stage.find(".magnify-image"):this.$image,h=this.$stage,r={w:this.imageData.width,h:this.imageData.height,x:this.imageData.left,y:this.imageData.top},l={w:h.width(),h:h.height(),x:h.offset().left,y:h.offset().top},g=this.imageData.originalWidth*i,c=this.imageData.originalHeight*i,m=e.x-(e.x-r.x)/r.w*g,f=e.y-(e.y-r.y)/r.h*c,d=this.isRotated?(g-c)/2:0,p=this.isRotated?c:g,u=this.isRotated?g:c,v=l.w-g,y=l.h-c; | ||
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){"use strict";function i(i){return t(i).attr("data-src")?t(i).attr("data-src"):t(i).attr("href")}function e(t){var i=t.match(/\d+/g);return parseFloat(i[0])}function a(t,i,e,a){var s=a?t.h:t.w,o=a?t.w:t.h;(o>i.h||s>i.w)&&e.addClass("is-grab"),o<=i.h&&s<=i.w&&e.removeClass("is-grab")}function s(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}function o(){return"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 8.0")>0||"Microsoft Internet Explorer"==navigator.appName&&navigator.appVersion.indexOf("MSIE 7.0")>0}var n=t(window),h=t(document),r=s()?"touchstart":"mousedown",l=s()?"touchmove":"mousemove",g=s()?"touchend":"mouseup",c=".magnify",m={draggable:!0,resizable:!0,movable:!0,keyboard:!0,title:!0,modalWidth:320,modalHeight:320,fixedContent:!0,fixedModalSize:!1,initMaximized:!1,gapThreshold:.02,ratioThreshold:.1,minRatio:.05,maxRatio:16,headToolbar:["maximize","close"],footToolbar:["zoomIn","zoomOut","prev","fullscreen","next","actualSize","rotateRight"],icons:{minimize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M1024 749.714v109.714c0 50.286 -41.143 91.429-91.429 91.429h-841.143c-50.286 0-91.429-41.143 -91.429-91.429v-109.714c0-50.286 41.143-91.429 91.429-91.429 h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',maximize:'<svg viewBox="0 0 1024 1024" class="svg-inline-icon"> <path fill="currentColor" d="M146.286 804.571h731.429v-438.857 h-731.429v438.857zM1024 164.571v694.857c0 50.286-41.143 91.429 -91.429 91.429h-841.143c-50.286 0-91.429-41.143-91.429-91.429v -694.857c0-50.286 41.143-91.429 91.429-91.429h841.143c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',close:'<svg viewBox="0 0 804.5714285714286 1024" class="svg-inline-icon"> <path fill="currentColor" d="M741.714 755.429c0 14.286-5.714 28.571-16 38.857l-77.714 77.714c-10.286 10.286-24.571 16-38.857 16 s-28.571-5.714-38.857-16l-168-168-168 168c-10.286 10.286-24.571 16 -38.857 16s-28.571-5.714-38.857-16l-77.714-77.714c-10.286-10.286 -16-24.571-16-38.857s5.714-28.571 16-38.857l168-168-168-168c-10.286 -10.286-16-24.571-16-38.857s5.714-28.571 16-38.857l77.714-77.714 c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l168 168 168-168c10.286-10.286 24.571-16 38.857-16s28.571 5.714 38.857 16l77.714 77.714c10.286 10.286 16 24.571 16 38.857s-5.714 28.571 -16 38.857l-168 168 168 168c10.286 10.286 16 24.571 16 38.857z"></path> </svg>',zoomIn:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-128v128c0 9.714-8.571 18.286-18.286 18.286 h-36.571c-9.714 0-18.286-8.571-18.286-18.286v-128h-128c-9.714 0 -18.286-8.571-18.286-18.286v-36.571c0-9.714 8.571-18.286 18.286 -18.286h128v-128c0-9.714 8.571-18.286 18.286-18.286h36.571c9.714 0 18.286 8.571 18.286 18.286v128h128c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256s-256 114.857 -256 256 114.857 256 256 256 256-114.857 256-256zM950.857 950.857 c0 40.571-32.571 73.143-73.143 73.143-19.429 0-38.286-8-51.429 -21.714l-196-195.429c-66.857 46.286-146.857 70.857-228 70.857 -222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143-70.857 228 l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',zoomOut:'<svg viewBox="0 0 950.8571428571428 1024" class="svg-inline-icon"> <path fill="currentColor" d="M585.143 457.143v36.571c0 9.714-8.571 18.286-18.286 18.286h-329.143c-9.714 0-18.286-8.571-18.286-18.286 v-36.571c0-9.714 8.571-18.286 18.286-18.286h329.143c9.714 0 18.286 8.571 18.286 18.286zM658.286 475.429c0-141.143-114.857-256-256-256 s-256 114.857-256 256 114.857 256 256 256 256-114.857 256-256z M950.857 950.857c0 40.571-32.571 73.143-73.143 73.143-19.429 0 -38.286-8-51.429-21.714l-196-195.429c-66.857 46.286-146.857 70.857 -228 70.857-222.286 0-402.286-180-402.286-402.286s180-402.286 402.286-402.286 402.286 180 402.286 402.286c0 81.143-24.571 161.143 -70.857 228l196 196c13.143 13.143 21.143 32 21.143 51.429z"></path> </svg>',prev:'<svg viewBox="0 0 914.2857142857142 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512v73.143c0 38.857-25.714 73.143-66.857 73.143h-402.286l167.429 168c13.714 13.143 21.714 32 21.714 51.429s-8 38.286-21.714 51.429l-42.857 43.429c-13.143 13.143 -32 21.143-51.429 21.143s-38.286-8-52-21.143l-372-372.571c-13.143 -13.143-21.143-32-21.143-51.429s8-38.286 21.143-52l372-371.429c13.714 -13.714 32.571-21.714 52-21.714s37.714 8 51.429 21.714l42.857 42.286 c13.714 13.714 21.714 32.571 21.714 52s-8 38.286-21.714 52l-167.429 167.429h402.286c41.143 0 66.857 34.286 66.857 73.143z"></path> </svg>',next:'<svg viewBox="0 0 841.1428571428571 1024" class="svg-inline-icon"> <path fill="currentColor" d="M841.143 548.571c0 19.429-7.429 38.286 -21.143 52l-372 372c-13.714 13.143-32.571 21.143-52 21.143s-37.714 -8-51.429-21.143l-42.857-42.857c-13.714-13.714-21.714-32.571-21.714 -52s8-38.286 21.714-52l167.429-167.429h-402.286c-41.143 0-66.857 -34.286-66.857-73.143v-73.143c0-38.857 25.714-73.143 66.857-73.143 h402.286l-167.429-168c-13.714-13.143-21.714-32-21.714-51.429s8 -38.286 21.714-51.429l42.857-42.857c13.714-13.714 32-21.714 51.429 -21.714s38.286 8 52 21.714l372 372c13.714 13.143 21.143 32 21.143 51.429z"></path> </svg>',fullscreen:'<svg viewBox="0 0 1097.142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M365.714 329.143c0 60.571-49.143 109.714-109.714 109.714s-109.714-49.143-109.714-109.714 49.143 -109.714 109.714-109.714 109.714 49.143 109.714 109.714z M950.857 548.571v256h-804.571v-109.714l182.857-182.857 91.429 91.429 292.571-292.571zM1005.714 146.286h-914.286c-9.714 0 -18.286 8.571-18.286 18.286v694.857c0 9.714 8.571 18.286 18.286 18.286h914.286c9.714 0 18.286-8.571 18.286-18.286 v-694.857c0-9.714-8.571-18.286-18.286-18.286zM1097.143 164.571 v694.857c0 50.286-41.143 91.429-91.429 91.429h-914.286c-50.286 0-91.429-41.143-91.429-91.429v-694.857c0-50.286 41.143-91.429 91.429-91.429h914.286c50.286 0 91.429 41.143 91.429 91.429z"></path> </svg>',actualSize:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M733.143 309.143l-202.857 202.857 202.857 202.857 82.286-82.286c10.286-10.857 26.286-13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714v256c0 20-16.571 36.571 -36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857-5.714 -13.143-2.857-29.143 8-39.429l82.286-82.286-202.857-202.857 -202.857 202.857 82.286 82.286c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857h-256c-20 0 -36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857 -33.714 13.143-5.714 29.143-2.857 39.429 8l82.286 82.286 202.857-202.857-202.857-202.857-82.286 82.286c-6.857 6.857 -16 10.857-25.714 10.857-4.571 0-9.714-1.143-13.714-2.857 -13.714-5.714-22.857-18.857-22.857-33.714v-256c0-20 16.571 -36.571 36.571-36.571h256c14.857 0 28 9.143 33.714 22.857 5.714 13.143 2.857 29.143-8 39.429l-82.286 82.286 202.857 202.857 202.857-202.857-82.286-82.286c-10.857-10.286-13.714 -26.286-8-39.429 5.714-13.714 18.857-22.857 33.714-22.857h256 c20 0 36.571 16.571 36.571 36.571v256c0 14.857-9.143 28-22.286 33.714-4.571 1.714-9.714 2.857-14.286 2.857-9.714 0-18.857-4 -25.714-10.857z"></path> </svg>',rotateLeft:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 512c0 241.714-197.143 438.857-438.857 438.857-130.857 0-254.286-57.714-337.714-158.286 -5.714-7.429-5.143-18.286 1.143-24.571l78.286-78.857c4-3.429 9.143-5.143 14.286-5.143 5.143 0.571 10.286 2.857 13.143 6.857 56 72.571 140 113.714 230.857 113.714 161.143 0 292.571-131.429 292.571-292.571s-131.429-292.571-292.571-292.571c-74.857 0 -145.714 28.571-198.857 78.286l78.286 78.857c10.857 10.286 13.714 26.286 8 39.429-5.714 13.714-18.857 22.857-33.714 22.857 h-256c-20 0-36.571-16.571-36.571-36.571v-256c0-14.857 9.143-28 22.857-33.714 13.143-5.714 29.143-2.857 39.429 8l74.286 73.714 c80.571-76 189.714-121.143 302.286-121.143 241.714 0 438.857 197.143 438.857 438.857z"></path> </svg>',rotateRight:'<svg viewBox="0 0 877.7142857142857 1024" class="svg-inline-icon"> <path fill="currentColor" d="M877.714 146.286v256c0 20-16.571 36.571-36.571 36.571h-256c-14.857 0-28-9.143-33.714-22.857 -5.714-13.143-2.857-29.143 8-39.429l78.857-78.857c-53.714 -49.714-124.571-78.286-199.429-78.286-161.143 0-292.571 131.429-292.571 292.571s131.429 292.571 292.571 292.571 c90.857 0 174.857-41.143 230.857-113.714 2.857-4 8-6.286 13.143-6.857 5.143 0 10.286 1.714 14.286 5.143l78.286 78.857 c6.857 6.286 6.857 17.143 1.143 24.571-83.429 100.571-206.857 158.286-337.714 158.286-241.714 0-438.857-197.143-438.857 -438.857s197.143-438.857 438.857-438.857c112.571 0 221.714 45.143 302.286 121.143l74.286-73.714c10.286-10.857 26.286 -13.714 40-8 13.143 5.714 22.286 18.857 22.286 33.714z"></path> </svg>'},i18n:{minimize:"minimize",maximize:"maximize",close:"close",zoomIn:"zoom-in(+)",zoomOut:"zoom-out(-)",prev:"prev(←)",next:"next(→)",fullscreen:"fullscreen",actualSize:"actual-size(Ctrl+Alt+0)",rotateLeft:"rotate-left(Ctrl+,)",rotateRight:"rotate-right(Ctrl+.)"},multiInstances:!0,initEvent:"click",initAnimation:!0,fixedModalPos:!1,zIndex:1090,dragHandle:!1,callbacks:{beforeOpen:t.noop,opened:t.noop,beforeClose:t.noop,closed:t.noop,beforeChange:t.noop,changed:t.noop}},f={isMoving:!1,isResizing:!1,zIndex:m.zIndex},d=null,p=function(i,e){this.options=t.extend(!0,{},m,e),e&&t.isArray(e.footToolbar)&&(this.options.footToolbar=e.footToolbar),e&&t.isArray(e.headToolbar)&&(this.options.headToolbar=e.headToolbar),this.$el=t(i),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0,this.isDoResize=!1,this.imageData={},this.modalData={width:null,height:null,left:null,top:null},this.init(i,this.options)};p.prototype={init:function(e,a){var s=i(e);this.groupName=null;var n=t(e).attr("data-group"),r=h.find('[data-group="'+n+'"]');void 0!==n?(this.groupName=n,this.getImgGroup(r,s)):this.getImgGroup(d.not("[data-group]"),s),this.open(),this.loadImg(s),a.draggable&&this.draggable(this.$magnify,this.dragHandle,".magnify-button"),a.movable&&this.movable(this.$stage,o()?".magnify-image":this.$image),a.resizable&&this.resizable(this.$magnify,this.$stage,o()?".magnify-image":this.$image,a.modalWidth,a.modalHeight)},_creatBtns:function(i,e){var a="";return t.each(i,function(t,i){a+=e[i]}),a},_creatTitle:function(){return this.options.title?'<div class="magnify-title"></div>':""},creatDOM:function(){var t={minimize:'<button class="magnify-button magnify-button-minimize" title="'+this.options.i18n.minimize+'">'+this.options.icons.minimize+"</button>",maximize:'<button class="magnify-button magnify-button-maximize" title="'+this.options.i18n.maximize+'">'+this.options.icons.maximize+"</button>",close:'<button class="magnify-button magnify-button-close" title="'+this.options.i18n.close+'">'+this.options.icons.close+"</button>",zoomIn:'<button class="magnify-button magnify-button-zoom-in" title="'+this.options.i18n.zoomIn+'">'+this.options.icons.zoomIn+"</button>",zoomOut:'<button class="magnify-button magnify-button-zoom-out" title="'+this.options.i18n.zoomOut+'">'+this.options.icons.zoomOut+"</button>",prev:'<button class="magnify-button magnify-button-prev" title="'+this.options.i18n.prev+'">'+this.options.icons.prev+"</button>",next:'<button class="magnify-button magnify-button-next" title="'+this.options.i18n.next+'">'+this.options.icons.next+"</button>",fullscreen:'<button class="magnify-button magnify-button-fullscreen" title="'+this.options.i18n.fullscreen+'">'+this.options.icons.fullscreen+"</button>",actualSize:'<button class="magnify-button magnify-button-actual-size" title="'+this.options.i18n.actualSize+'">'+this.options.icons.actualSize+"</button>",rotateLeft:'<button class="magnify-button magnify-button-rotate-left" title="'+this.options.i18n.rotateLeft+'">'+this.options.icons.rotateLeft+"</button>",rotateRight:'<button class="magnify-button magnify-button-rotate-right" title="'+this.options.i18n.rotateRight+'">'+this.options.icons.rotateRight+"</button>"};return'<div class="magnify-modal"> <div class="magnify-header"> <div class="magnify-toolbar magnify-head-toolbar">'+this._creatBtns(this.options.headToolbar,t)+" </div>"+this._creatTitle()+' </div> <div class="magnify-stage"> <img class="magnify-image" src="" alt="" /> </div> <div class="magnify-footer"> <div class="magnify-toolbar magnify-foot-toolbar">'+this._creatBtns(this.options.footToolbar,t)+" </div> </div> </div>"},build:function(){var i=this.creatDOM(),e=t(i);this.$magnify=e,this.$header=e.find(".magnify-header"),this.$headToolbar=e.find(".magnify-head-toolbar"),this.$footer=e.find(".magnify-footer"),this.$footToolbar=e.find(".magnify-foot-toolbar"),this.$stage=e.find(".magnify-stage"),this.$title=e.find(".magnify-title"),this.$image=e.find(".magnify-image"),this.$close=e.find(".magnify-button-close"),this.$maximize=e.find(".magnify-button-maximize"),this.$minimize=e.find(".magnify-button-minimize"),this.$zoomIn=e.find(".magnify-button-zoom-in"),this.$zoomOut=e.find(".magnify-button-zoom-out"),this.$actualSize=e.find(".magnify-button-actual-size"),this.$fullscreen=e.find(".magnify-button-fullscreen"),this.$rotateLeft=e.find(".magnify-button-rotate-left"),this.$rotateRight=e.find(".magnify-button-rotate-right"),this.$prev=e.find(".magnify-button-prev"),this.$next=e.find(".magnify-button-next"),this.$stage.addClass("stage-ready"),this.$image.addClass("image-ready"),this.$magnify.css("z-index",f.zIndex),this.options.dragHandle&&".magnify-modal"!==this.options.dragHandle?this.dragHandle=this.$magnify.find(this.options.dragHandle):this.dragHandle=this.$magnify},open:function(){if(this.options.multiInstances||t(".magnify-modal").eq(0).remove(),!t(".magnify-modal").length&&this.options.fixedContent&&(t("html").css({overflow:"hidden"}),document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight))){var i=function(){var t=document.createElement("div");t.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(t);var i=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),i}();i&&t("html").css({"padding-right":i})}this.build(),this._triggerHook("beforeOpen",this.$el),t("body").append(this.$magnify),this.addEvents(),this.setModalPos(this.$magnify),this._triggerHook("opened",this.$el)},close:function(i){this._triggerHook("beforeClose",this.$el),this.$magnify.remove(),this.isOpened=!1,this.isMaximized=!1,this.isRotated=!1,this.rotateAngle=0;var e=!t(".magnify-modal").length;e&&this.options.fixedContent&&t("html").css({overflow:"","padding-right":""}),e&&this.options.multiInstances&&(f.zIndex=this.options.zIndex),t(".magnify-modal").length||(h.off("keydown.magnify"),n.off("resize.magnify")),this._triggerHook("closed",this.$el)},setModalPos:function(t){var i=n.width(),e=n.height(),a=h.scrollLeft(),s=h.scrollTop(),o=this.options.modalWidth,r=this.options.modalHeight;this.options.initMaximized?(t.addClass("magnify-maximize"),t.css({width:"100%",height:"100%",left:0,top:0}),this.isOpened=!0,this.isMaximized=!0):t.css({width:o,height:r,left:(i-o)/2+a+"px",top:(e-r)/2+s+"px"})},setModalSize:function(t){var i=this,a=n.width(),s=n.height(),o=h.scrollLeft(),r=h.scrollTop(),l={left:this.$stage.css("left"),right:this.$stage.css("right"),top:this.$stage.css("top"),bottom:this.$stage.css("bottom"),borderLeft:this.$stage.css("border-left-width"),borderRight:this.$stage.css("border-right-width"),borderTop:this.$stage.css("border-top-width"),borderBottom:this.$stage.css("border-bottom-width")},g=t.width+e(l.left)+e(l.right)+e(l.borderLeft)+e(l.borderRight),c=t.height+e(l.top)+e(l.bottom)+e(l.borderTop)+e(l.borderBottom),m=(this.options.gapThreshold>0?this.options.gapThreshold:0)+1,f=Math.min(a/(g*m),s/(c*m),1),d=Math.max(g*f,this.options.modalWidth),p=Math.max(c*f,this.options.modalHeight),u={width:(d=this.options.fixedModalSize?this.options.modalWidth:Math.round(d))+"px",height:(p=this.options.fixedModalSize?this.options.modalHeight:Math.round(p))+"px",left:(a-d)/2+o+"px",top:(s-p)/2+r+"px"};this.options.initAnimation?this.$magnify.animate(u,function(){i.setImageSize(t)}):(this.$magnify.css(u),this.setImageSize(t)),this.isOpened=!0},getImageScaleToStage:function(t,i){return this.isRotated?Math.min(t/this.img.height,i/this.img.width,1):Math.min(t/this.img.width,i/this.img.height,1)},setImageSize:function(i){var e=o()?this.$stage.find(".magnify-image"):this.$image,s={w:this.$stage.width(),h:this.$stage.height()},n=this.getImageScaleToStage(s.w,s.h);e.css({width:Math.ceil(i.width*n)+"px",height:Math.ceil(i.height*n)+"px",left:(s.w-Math.ceil(i.width*n))/2+"px",top:(s.h-Math.ceil(i.height*n))/2+"px"}),o()&&e.find("group").css({width:Math.floor(i.width*n)+"px",height:Math.floor(i.height*n)+"px"}),t.extend(this.imageData,{initWidth:i.width*n,initHeight:i.height*n,initLeft:(s.w-i.width*n)/2,initTop:(s.h-i.height*n)/2,width:i.width*n,height:i.height*n,left:(s.w-i.width*n)/2,top:(s.h-i.height*n)/2}),a({w:e.width(),h:e.height()},{w:this.$stage.width(),h:this.$stage.height()},this.$stage,this.isRotated),this.$magnify.find(".magnify-loader").remove(),this.options.initAnimation&&e.fadeIn()},loadImg:function(t,i,e){var a=this;this.$magnify.append('<div class="magnify-loader"></div>'),this.options.initAnimation&&this.$image.hide(),o()?this.$stage.html('<img class="magnify-image" id="magnify-image" src="'+t+'" alt="" />'):this.$image.attr("src",t),function(t,i,e){var a=new Image;a.onload=function(){i(a)},a.onerror=function(){e(a)},a.src=t}(t,function(t){a.img=t,a.imageData={originalWidth:t.width,originalHeight:t.height},a.isMaximized||a.isOpened&&a.options.fixedModalPos?a.setImageSize(t):a.setModalSize(t),a.$stage.removeClass("stage-ready"),a.$image.removeClass("image-ready"),i&&i.call()},function(){a.$magnify.find(".magnify-loader").remove(),e&&e.call()}),this.options.title&&this.setImgTitle(t)},getImgGroup:function(e,a){var s=this;s.groupData=[],t(e).each(function(e,o){var n=i(this);s.groupData.push({src:n,caption:t(this).attr("data-caption")}),a===n&&(s.groupIndex=e)})},setImgTitle:function(t){var i=this.groupIndex,e=(e=this.groupData[i].caption)||function(t){return t.replace(/^.*?\/*([^/?]*)\.[a-z]+(\?.+|$)/gi,"$1")}(t);this.$title.html(e)},jump:function(t){this._triggerHook("beforeChange",this.groupIndex),this.groupIndex=this.groupIndex+t,this.jumpTo(this.groupIndex)},jumpTo:function(t){var i=this;(t%=this.groupData.length)>=0?t%=this.groupData.length:t<0&&(t=(this.groupData.length+t)%this.groupData.length),this.groupIndex=t,this.loadImg(this.groupData[t].src,function(){i._triggerHook("changed",t)},function(){i._triggerHook("changed",t)})},wheel:function(t){t.preventDefault();var i=1;t.originalEvent.deltaY?i=t.originalEvent.deltaY>0?1:-1:t.originalEvent.wheelDelta?i=-t.originalEvent.wheelDelta/120:t.originalEvent.detail&&(i=t.originalEvent.detail>0?1:-1);var e=-i*this.options.ratioThreshold,a={x:t.originalEvent.clientX-this.$stage.offset().left+h.scrollLeft(),y:t.originalEvent.clientY-this.$stage.offset().top+h.scrollTop()};this.zoom(e,a,t)},zoom:function(t,i,e){this.$image=o()?this.$stage.find(".magnify-image"):this.$image,t=t<0?1/(1-t):1+t,(t=this.$image.width()/this.imageData.originalWidth*t)>this.options.maxRatio||t<this.options.minRatio||this.zoomTo(t,i,e)},zoomTo:function(i,e,s){var n=o()?this.$stage.find(".magnify-image"):this.$image,h=this.$stage,r={w:this.imageData.width,h:this.imageData.height,x:this.imageData.left,y:this.imageData.top},l={w:h.width(),h:h.height(),x:h.offset().left,y:h.offset().top},g=this.imageData.originalWidth*i,c=this.imageData.originalHeight*i,m=e.x-(e.x-r.x)/r.w*g,f=e.y-(e.y-r.y)/r.h*c,d=this.isRotated?(g-c)/2:0,p=this.isRotated?c:g,u=this.isRotated?g:c,v=l.w-g,y=l.h-c; | ||
// The conditions with image rotate 90 degree drive me crazy alomst! | ||
f=u<=l.h?(l.h-c)/2:f>d?d:f>y-d?f:y-d,m=p<=l.w?(l.w-g)/2:m>-d?-d:m>v+d?m:v+d,Math.abs(this.imageData.initWidth-g)<.05*this.imageData.initWidth?this.setImageSize(this.img):(n.css({width:Math.round(g)+"px",height:Math.round(c)+"px",left:Math.round(m)+"px",top:Math.round(f)+"px"}),o()&&n.find("group").css({width:Math.ceil(g)+"px",height:Math.ceil(c)+"px"}),a({w:Math.round(p),h:Math.round(u)},{w:l.w,h:l.h},this.$stage)),t.extend(this.imageData,{width:g,height:c,left:m,top:f})},rotate:function(t){this.rotateAngle=this.rotateAngle+t,this.rotateAngle/90%2==0?this.isRotated=!1:this.isRotated=!0,this.rotateTo(this.rotateAngle)},rotateTo:function(t){(o()?this.$stage.find(".magnify-image"):this.$image).rotate({angle:t}),this.setImageSize({width:this.imageData.originalWidth,height:this.imageData.originalHeight}),this.$stage.removeClass("is-grab")},resize:function(){var t=this;return function(t,i){var e=null;return function(){var a=this,s=arguments;clearTimeout(e),e=setTimeout(function(){t.apply(a,s)},i)}}(function(){t.isOpened&&(t.isMaximized?t.setImageSize({width:t.imageData.originalWidth,height:t.imageData.originalHeight}):t.setModalSize({width:t.imageData.originalWidth,height:t.imageData.originalHeight}))},500)},maximize:function(){this.isMaximized?(this.$magnify.removeClass("magnify-maximize"),this.$magnify.css({width:this.modalData.width?this.modalData.width:this.options.modalWidth,height:this.modalData.height?this.modalData.height:this.options.modalHeight,left:this.modalData.left?this.modalData.left:(n.width()-this.options.modalWidth)/2+h.scrollLeft(),top:this.modalData.top?this.modalData.top:(n.height()-this.options.modalHeight)/2+h.scrollTop()}),this.isMaximized=!1):(this.modalData={width:this.$magnify.width(),height:this.$magnify.height(),left:this.$magnify.offset().left,top:this.$magnify.offset().top},this.$magnify.addClass("magnify-maximize"),this.$magnify.css({width:"100%",height:"100%",left:0,top:0}),this.isMaximized=!0),this.setImageSize({width:this.imageData.originalWidth,height:this.imageData.originalHeight})},fullscreen:function(){!function(t){t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen()}(this.$magnify[0])},keydown:function(t){if(!this.options.keyboard)return!1;var i=t.keyCode||t.which||t.charCode,e=t.ctrlKey||t.metaKey,a=t.altKey||t.metaKey;switch(i){case 37:this.jump(-1);break;case 39:this.jump(1);break;case 187:this.zoom(3*this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 189:this.zoom(3*-this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 61:this.zoom(3*this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 173:this.zoom(3*-this.options.ratioThreshold,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 48:e&&a&&this.zoomTo(1,{x:this.$stage.width()/2,y:this.$stage.height()/2},t);break;case 188:e&&this.rotate(-90);break;case 190:e&&this.rotate(90)}},addEvents:function(){var t=this;this.$close.off("click.magnify").on("click.magnify",function(i){t.close()}),this.$stage.off("wheel mousewheel DOMMouseScroll.magnify").on("wheel mousewheel DOMMouseScroll.magnify",function(i){t.wheel(i)}),this.$zoomIn.off("click.magnify").on("click.magnify",function(i){t.zoom(3*t.options.ratioThreshold,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$zoomOut.off("click.magnify").on("click.magnify",function(i){t.zoom(3*-t.options.ratioThreshold,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$actualSize.off("click.magnify").on("click.magnify",function(i){t.zoomTo(1,{x:t.$stage.width()/2,y:t.$stage.height()/2},i)}),this.$prev.off("click.magnify").on("click.magnify",function(){t.jump(-1)}),this.$fullscreen.off("click.magnify").on("click.magnify",function(){t.fullscreen()}),this.$next.off("click.magnify").on("click.magnify",function(){t.jump(1)}),this.$rotateLeft.off("click.magnify").on("click.magnify",function(){t.rotate(-90)}),this.$rotateRight.off("click.magnify").on("click.magnify",function(){t.rotate(90)}),this.$maximize.off("click.magnify").on("click.magnify",function(){t.maximize()}),h.off("keydown.magnify").on("keydown.magnify",function(i){t.keydown(i)}),n.on("resize.magnify",t.resize())},_triggerHook:function(i,e){this.options.callbacks[i]&&this.options.callbacks[i].apply(this,t.isArray(e)?e:[e])}},t.fn.magnify=function(i){d=t(this);for(var e in i)"string"!=typeof i[e]||isNaN(i[e])||(i[e]=parseFloat(i[e]));var a=t.extend(!0,{},m,i);return f.zIndex=a.zIndex,"string"==typeof i||("dblclick"===a.initEvent&&d.off("click.magnify").on("click.magnify",function(t){t.preventDefault(),t.stopPropagation()}),d.off(a.initEvent+c).on(a.initEvent+c,function(e){e.preventDefault(),e.stopPropagation(),t(this).data("magnify",new p(this,i))})),d},h.on("click.magnify","[data-magnify]",function(i){d=t("[data-magnify]"),i.preventDefault(),t(this).data("magnify",new p(this,m))});t.extend(p.prototype,{draggable:function(i,e,a){var s=this,o=!1,n=0,m=0,d=0,p=0,u=function(e){if((e=e||window.event).preventDefault(),o&&!f.isMoving&&!f.isResizing&&!s.isMaximized){var a="touchmove"===e.type?e.originalEvent.targetTouches[0].pageX:e.clientX,h="touchmove"===e.type?e.originalEvent.targetTouches[0].pageY:e.clientY,r=a-n,l=h-m;t(i).css({left:r+d+"px",top:l+p+"px"})}},v=function(t){h.off(l+c,u).off(g+c,v),o=!1};t(e).on(r+c,function(e){if(e=e||window.event,s.options.multiInstances&&i.css("z-index",++f.zIndex),t(e.target).closest(a).length)return!0;o=!0,n="touchstart"===e.type?e.originalEvent.targetTouches[0].pageX:e.clientX,m="touchstart"===e.type?e.originalEvent.targetTouches[0].pageY:e.clientY,d=t(i).offset().left,p=t(i).offset().top,h.on(l+c,u).on(g+c,v)})}});t.extend(p.prototype,{movable:function(i,e){var a=this,s=!1,n=0,m=0,d=0,p=0,u=0,v=0,y=0,_=function(h){(h=h||window.event).preventDefault();var r=o()?t(i).find(e):t(e);if(s){var l="touchmove"===h.type?h.originalEvent.targetTouches[0].pageX:h.clientX,g="touchmove"===h.type?h.originalEvent.targetTouches[0].pageY:h.clientY,c=l-n,f=g-m,_=c+d,b=f+p;v>0?f+p>y?b=y:f+p<-v+y&&(b=-v+y):b=p,u>0?c+d>-y?_=-y:c+d<-u-y&&(_=-u-y):_=d,r.css({left:_+"px",top:b+"px"}),t.extend(a.imageData,{left:_,top:b})}},b=function(i){h.off(l+c,_).off(g+c,b),s=!1,f.isMoving=!1,t("html,body,.magnify-modal,.magnify-stage,.magnify-button,.magnify-resizable-handle").removeClass("is-grabbing")};t(i).on(r+c,function(r){(r=r||window.event).preventDefault();var x=o()?t(i).find(e):t(e),w=x.width(),z=x.height(),$=t(i).width(),M=t(i).height();n="touchstart"===r.type?r.originalEvent.targetTouches[0].pageX:r.clientX,m="touchstart"===r.type?r.originalEvent.targetTouches[0].pageY:r.clientY,y=a.isRotated?(w-z)/2:0,u=a.isRotated?z-$:w-$,v=a.isRotated?w-M:z-M,s=u>0||v>0,f.isMoving=u>0||v>0,d=x.position().left-(o()?0:y),p=x.position().top+(o()?0:y),i.hasClass("is-grab")&&t("html,body,.magnify-modal,.magnify-stage,.magnify-button,.magnify-resizable-handle").addClass("is-grabbing"),h.on(l+c,_).on(g+c,b)})}});t.extend(p.prototype,{resizable:function(i,e,s,n,m){var d=this,p=t('<div class="magnify-resizable-handle magnify-resizable-handle-e"></div>'),u=t('<div class="magnify-resizable-handle magnify-resizable-handle-w"></div>'),v=t('<div class="magnify-resizable-handle magnify-resizable-handle-s"></div>'),y=t('<div class="magnify-resizable-handle magnify-resizable-handle-n"></div>'),_=t('<div class="magnify-resizable-handle magnify-resizable-handle-se"></div>'),b=t('<div class="magnify-resizable-handle magnify-resizable-handle-sw"></div>'),x=t('<div class="magnify-resizable-handle magnify-resizable-handle-ne"></div>'),w=t('<div class="magnify-resizable-handle magnify-resizable-handle-nw"></div>'),z={e:p,s:v,se:_,n:y,w:u,nw:w,ne:x,sw:b};t(i).append(p,u,v,y,_,b,x,w);var $=!1,M=0,T=0,C={w:0,h:0,l:0,t:0},S={w:0,h:0,l:0,t:0},D={w:0,h:0,l:0,t:0},k=0,I=0,W=0,E="",O=function(a,n){(n=n||window.event).preventDefault();var r=o()?t(e).find(s):t(s);$=!0,f.isResizing=!0,M="touchstart"===n.type?n.originalEvent.targetTouches[0].pageX:n.clientX,T="touchstart"===n.type?n.originalEvent.targetTouches[0].pageY:n.clientY,C={w:t(i).width(),h:t(i).height(),l:t(i).offset().left,t:t(i).offset().top},S={w:t(e).width(),h:t(e).height(),l:t(e).offset().left,t:t(e).offset().top},D={w:r.width(),h:r.height(),l:r.position().left,t:r.position().top},k=d.isRotated?(D.w-D.h)/2:0,I=d.isRotated?D.h:D.w,W=d.isRotated?D.w:D.h,E=a,t("html,body,.magnify-modal,.magnify-stage,.magnify-button").css("cursor",a+"-resize"),h.on(l+c,H).on(g+c,R)},H=function(a){(a=a||window.event).preventDefault();var h=o()?t(e).find(s):t(s);if($&&!d.isMaximized){var r="touchmove"===a.type?a.originalEvent.targetTouches[0].pageX:a.clientX,l="touchmove"===a.type?a.originalEvent.targetTouches[0].pageY:a.clientY,g=r-M,c=l-T,f=function(t,i,e){var a=-i+C.w>n?i+C.l:C.l+C.w-n,s=-e+C.h>m?e+C.t:C.t+C.h-m;return{e:{width:Math.max(i+C.w,n)+"px"},s:{height:Math.max(e+C.h,m)+"px"},se:{width:Math.max(i+C.w,n)+"px",height:Math.max(e+C.h,m)+"px"},w:{width:Math.max(-i+C.w,n)+"px",left:a+"px"},n:{height:Math.max(-e+C.h,m)+"px",top:s+"px"},nw:{width:Math.max(-i+C.w,n)+"px",height:Math.max(-e+C.h,m)+"px",top:s+"px",left:a+"px"},ne:{width:Math.max(i+C.w,n)+"px",height:Math.max(-e+C.h,m)+"px",top:s+"px"},sw:{width:Math.max(-i+C.w,n)+"px",height:Math.max(e+C.h,m)+"px",left:a+"px"}}[t]}(E,g,c);t(i).css(f);var p=function(i,a,h){var r=o()?t(e).find(s):t(s),l=o()?r.position().left+k:r.position().left,g=o()?r.position().top-k:r.position().top,c=a+C.w>n?S.w-I+a-k:n-(C.w-S.w)-I-k,f=h+C.h>m?S.h-W+h+k:m-(C.h-S.h)-W+k,d=-a+C.w>n?S.w-I-a-k:n-(C.w-S.w)-I-k,p=-h+C.h>m?S.h-W-h+k:m-(C.h-S.h)-W+k,u=(c>0?l:l<0?l:0)-k,v=(f>0?g:g<0?g:0)+k,y=(d>0?l:l<0?l:0)-k,_=(p>0?g:g<0?g:0)+k;return{e:{left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},s:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px"},se:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px",left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},w:{left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"},n:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px"},nw:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px",left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"},ne:{top:p>=k?(p+k)/2+"px":_>p?_+"px":p+"px",left:c>=-k?(c-k)/2+"px":u>c?u+"px":c+"px"},sw:{top:f>=k?(f+k)/2+"px":v>f?v+"px":f+"px",left:d>=-k?(d-k)/2+"px":y>d?y+"px":d+"px"}}[i]}(E,g,c);h.css(p),d.isDoResize=!0}},R=function(i){h.off(l+c,H).off(g+c,R),f.isResizing&&a({w:I,h:W},{w:t(e).width(),h:t(e).height()},e),$=!1,f.isResizing=!1,t("html,body,.magnify-modal,.magnify-stage,.magnify-button").css("cursor","");var s=d.getImageScaleToStage(t(e).width(),t(e).height());t.extend(d.imageData,{initWidth:d.img.width*s,initHeight:d.img.height*s,initLeft:(t(e).width()-d.img.width*s)/2,initTop:(t(e).height()-d.img.height*s)/2})};t.each(z,function(t,i){i.on(r+c,function(i){O(t,i)})})}})}),function($){for(var supportedCSS,supportedCSSOrigin,styles=document.getElementsByTagName("head")[0].style,toCheck="transformProperty WebkitTransform OTransform msTransform MozTransform".split(" "),a=0;a<toCheck.length;a++)void 0!==styles[toCheck[a]]&&(supportedCSS=toCheck[a]);supportedCSS&&"T"==(supportedCSSOrigin=supportedCSS.replace(/[tT]ransform/,"TransformOrigin"))[0]&&(supportedCSSOrigin[0]="t"),eval('IE = "v"=="\v"'),jQuery.fn.extend({rotate:function(t){if(0!==this.length&&void 0!==t){"number"==typeof t&&(t={angle:t});for(var i=[],e=0,a=this.length;e<a;e++){var s=this.get(e);if(s.Wilq32&&s.Wilq32.PhotoEffect)s.Wilq32.PhotoEffect._handleRotation(t);else{var o=$.extend(!0,{},t),n=new Wilq32.PhotoEffect(s,o)._rootObj;i.push($(n))}}return i}},getRotateAngle:function(){for(var t=[0],i=0,e=this.length;i<e;i++){var a=this.get(i);a.Wilq32&&a.Wilq32.PhotoEffect&&(t[i]=a.Wilq32.PhotoEffect._angle)}return t},stopRotate:function(){for(var t=0,i=this.length;t<i;t++){var e=this.get(t);e.Wilq32&&e.Wilq32.PhotoEffect&&clearTimeout(e.Wilq32.PhotoEffect._timer)}}}),Wilq32=window.Wilq32||{},Wilq32.PhotoEffect=supportedCSS?function(t,i){t.Wilq32={PhotoEffect:this},this._img=this._rootObj=this._eventObj=t,this._handleRotation(i)}:function(t,i){if(this._img=t,this._onLoadDelegate=[i],this._rootObj=document.createElement("span"),this._rootObj.style.display="inline-block",this._rootObj.Wilq32={PhotoEffect:this},t.parentNode.insertBefore(this._rootObj,t),t.complete)this._Loader();else{var e=this;jQuery(this._img).bind("load",function(){e._Loader()})}},Wilq32.PhotoEffect.prototype={_setupParameters:function(t){this._parameters=this._parameters||{},"number"!=typeof this._angle&&(this._angle=0),"number"==typeof t.angle&&(this._angle=t.angle),this._parameters.animateTo="number"==typeof t.animateTo?t.animateTo:this._angle,this._parameters.step=t.step||this._parameters.step||null,this._parameters.easing=t.easing||this._parameters.easing||this._defaultEasing,this._parameters.duration="duration"in t?t.duration:t.duration||this._parameters.duration||1e3,this._parameters.callback=t.callback||this._parameters.callback||this._emptyFunction,this._parameters.center=t.center||this._parameters.center||["50%","50%"],"string"==typeof this._parameters.center[0]?this._rotationCenterX=parseInt(this._parameters.center[0],10)/100*this._imgWidth*this._aspectW:this._rotationCenterX=this._parameters.center[0],"string"==typeof this._parameters.center[1]?this._rotationCenterY=parseInt(this._parameters.center[1],10)/100*this._imgHeight*this._aspectH:this._rotationCenterY=this._parameters.center[1],t.bind&&t.bind!=this._parameters.bind&&this._BindEvents(t.bind)},_emptyFunction:function(){},_defaultEasing:function(t,i,e,a,s){return-a*((i=i/s-1)*i*i*i-1)+e},_handleRotation:function(t,i){supportedCSS||this._img.complete||i?(this._setupParameters(t),this._angle==this._parameters.animateTo?this._rotate(this._angle):this._animateStart()):this._onLoadDelegate.push(t)},_BindEvents:function(t){if(t&&this._eventObj){if(this._parameters.bind){var i=this._parameters.bind;for(var e in i)i.hasOwnProperty(e)&&jQuery(this._eventObj).unbind(e,i[e])}this._parameters.bind=t;for(var e in t)t.hasOwnProperty(e)&&jQuery(this._eventObj).bind(e,t[e])}},_Loader:IE?function(){var t=this._img.width,i=this._img.height;this._imgWidth=t,this._imgHeight=i,this._img.parentNode.removeChild(this._img),this._vimage=this.createVMLNode("image"),this._vimage.src=this._img.src,this._vimage.style.height=i+"px",this._vimage.style.width=t+"px",this._vimage.style.position="absolute",// FIXES IE PROBLEM - its only rendered if its on absolute position! | ||
this._vimage.style.top="0px",this._vimage.style.left="0px",this._aspectW=this._aspectH=1,this._container=this.createVMLNode("group"),this._container.style.width=t,this._container.style.height=i,this._container.style.position="absolute",this._container.style.top="0px",this._container.style.left="0px",this._container.setAttribute("coordsize",t-1+","+(i-1)),this._container.appendChild(this._vimage),this._rootObj.appendChild(this._container),this._rootObj.style.position="relative",this._rootObj.style.width=t+"px",this._rootObj.style.height=i+"px",this._rootObj.setAttribute("id",this._img.getAttribute("id")),this._rootObj.className=this._img.className,this._eventObj=this._rootObj;for(var e;e=this._onLoadDelegate.shift();)this._handleRotation(e,!0)}:function(){this._rootObj.setAttribute("id",this._img.getAttribute("id")),this._rootObj.className=this._img.className,this._imgWidth=this._img.naturalWidth,this._imgHeight=this._img.naturalHeight;var t=Math.sqrt(this._imgHeight*this._imgHeight+this._imgWidth*this._imgWidth);this._width=3*t,this._height=3*t,this._aspectW=this._img.offsetWidth/this._img.naturalWidth,this._aspectH=this._img.offsetHeight/this._img.naturalHeight,this._img.parentNode.removeChild(this._img),this._canvas=document.createElement("canvas"),this._canvas.setAttribute("width",this._width),this._canvas.style.position="relative",this._canvas.style.left=-this._img.height*this._aspectW+"px",this._canvas.style.top=-this._img.width*this._aspectH+"px",this._canvas.Wilq32=this._rootObj.Wilq32,this._rootObj.appendChild(this._canvas),this._rootObj.style.width=this._img.width*this._aspectW+"px",this._rootObj.style.height=this._img.height*this._aspectH+"px",this._eventObj=this._canvas,this._cnv=this._canvas.getContext("2d");for(var i;i=this._onLoadDelegate.shift();)this._handleRotation(i,!0)},_animateStart:function(){this._timer&&clearTimeout(this._timer),this._animateStartTime=+new Date,this._animateStartAngle=this._angle,this._animate()},_animate:function(){var t=+new Date,i=t-this._animateStartTime>this._parameters.duration;if(i&&!this._parameters.animatedGif)clearTimeout(this._timer);else{if(this._canvas||this._vimage||this._img){var e=this._parameters.easing(0,t-this._animateStartTime,this._animateStartAngle,this._parameters.animateTo-this._animateStartAngle,this._parameters.duration);this._rotate(~~(10*e)/10)}this._parameters.step&&this._parameters.step(this._angle);var a=this;this._timer=setTimeout(function(){a._animate.call(a)},10)}this._parameters.callback&&i&&(this._angle=this._parameters.animateTo,this._rotate(this._angle),this._parameters.callback.call(this._rootObj))},_rotate:function(){var t=Math.PI/180;return IE?function(t){this._angle=t,this._container.style.rotation=t%360+"deg",this._vimage.style.top=-(this._rotationCenterY-this._imgHeight/2)+"px",this._vimage.style.left=-(this._rotationCenterX-this._imgWidth/2)+"px",this._container.style.top=this._rotationCenterY-this._imgHeight/2+"px",this._container.style.left=this._rotationCenterX-this._imgWidth/2+"px"}:supportedCSS?function(t){this._angle=t,this._img.style[supportedCSS]="rotate("+t%360+"deg)",this._img.style[supportedCSSOrigin]=this._parameters.center.join(" ")}:function(i){this._angle=i,i=i%360*t,this._canvas.width=this._width,this._canvas.height=this._height,this._cnv.translate(this._imgWidth*this._aspectW,this._imgHeight*this._aspectH),this._cnv.translate(this._rotationCenterX,this._rotationCenterY),this._cnv.rotate(i),this._cnv.translate(-this._rotationCenterX,-this._rotationCenterY),this._cnv.scale(this._aspectW,this._aspectH),this._cnv.drawImage(this._img,0,0)}}()},IE&&(Wilq32.PhotoEffect.prototype.createVMLNode=function(){document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)");try{return!document.namespaces.rvml&&document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<rvml:"+t+' class="rvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}}())}(jQuery); |
{ | ||
"name": "jquery.magnify", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"description": "A jQuery plugin to view images just like in Windows", | ||
@@ -5,0 +5,0 @@ "main": "magnify.js", |
@@ -247,7 +247,7 @@ > ⚠️ Attention! This repository will not be maintained. The plugin is easy to use, but its customization can be troublesome. To improve plugin's flexibility, I made another repository [PhotoViewer](https://github.com/nzbin/photoviewer) which is the enhanced version of Magnify. | ||
// Will fire before image is changed | ||
// The arguments is the index of image group | ||
// The arguments is the current image index of image group | ||
}, | ||
changed: function(index){ | ||
// Will fire after image is changed | ||
// The arguments is the index of image group | ||
// The arguments is the next image index of image group | ||
} | ||
@@ -254,0 +254,0 @@ } |
@@ -745,3 +745,3 @@ /** | ||
}, | ||
loadImg: function (imgSrc) { | ||
loadImg: function (imgSrc, fn, err) { | ||
@@ -784,5 +784,15 @@ var self = this; | ||
// callback of image loaded successfully | ||
if(fn){ | ||
fn.call(); | ||
} | ||
}, function () { | ||
// loader end | ||
self.$magnify.find('.magnify-loader').remove(); | ||
// callback of image loading failed | ||
if(err){ | ||
err.call(); | ||
} | ||
}); | ||
@@ -826,6 +836,8 @@ | ||
}, | ||
jump: function (index) { | ||
jump: function (step) { | ||
this.groupIndex = this.groupIndex + index; | ||
this._triggerHook('beforeChange', this.groupIndex); | ||
this.groupIndex = this.groupIndex + step; | ||
this.jumpTo(this.groupIndex); | ||
@@ -836,2 +848,4 @@ | ||
var self = this; | ||
index = index % this.groupData.length; | ||
@@ -847,8 +861,8 @@ | ||
this._triggerHook('beforeChange', index); | ||
this.loadImg(this.groupData[index].src, function () { | ||
self._triggerHook('changed', index); | ||
}, function () { | ||
self._triggerHook('changed', index); | ||
}); | ||
this.loadImg(this.groupData[index].src); | ||
this._triggerHook('changed', index); | ||
}, | ||
@@ -855,0 +869,0 @@ wheel: function (e) { |
@@ -9,3 +9,3 @@ /*! | ||
* | ||
* jquery.magnify - v1.3.1 | ||
* jquery.magnify - v1.3.2 | ||
* A jQuery plugin to view images just like in windows | ||
@@ -12,0 +12,0 @@ * https://github.com/nzbin/magnify#readme |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
10548
547350