PluginProbe
Photonic Gallery & Lightbox for Flickr, SmugMug & Others / 3.33
Photonic Gallery & Lightbox for Flickr, SmugMug & Others v3.33
3.37 3.36 3.35 3.34 3.33 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 2.40 2.41 2.42 2.43 All 142 releases
photonic / include / ext / imagelightbox / imagelightbox.min.js

imagelightbox.min.js in Photonic Gallery & Lightbox for Flickr, SmugMug & Others 3.33, at include/ext/imagelightbox/imagelightbox.min.js

4 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 !function(m,v,i){"use strict";function r(){var t=i.body||i.documentElement;return""==(t=t.style).WebkitTransition?"-webkit-":""==t.MozTransition?"-moz-":""==t.OTransition?"-o-":""==t.transition&&""}function E(t,n,e){var i={},o=r();i[o+"transform"]="translateX("+n+")",i[o+"transition"]=o+"transform "+e+"s linear",t.css(i)}function x(t){if(y)return 1;if(k&&void 0!==t&&void 0!==t.pointerType)if(void 0!==t.MSPOINTER_TYPE_MOUSE){if(t.MSPOINTER_TYPE_MOUSE!=t.pointerType)return 1}else if("mouse"!=t.pointerType)return 1}var S=!1!==r(),y="ontouchstart"in v,k=v.navigator.pointerEnabled||v.navigator.msPointerEnabled;m.fn.imageLightbox=function(t,n){function r(){var e=-1;return m(u).each(function(t,n){if(n.href==d[0].href)return e=t,!1}),e}function a(){if(!f.length)return!0;var n=.8*m(v).width(),e=.9*m(v).height(),i=new Image;i.src=f.attr("src"),i.onload=function(){var t;l=i.width,o=i.height,(n<l||e<o)&&(l/=t=n/e<l/o?l/n:o/e,o/=t),f.css({width:l+"px",height:o+"px",top:(m(v).height()-o)/2+"px",left:(m(v).width()-l)/2+"px"})}}var c=m.extend({selector:'id="imagelightbox"',animationSpeed:250,preloadNext:!0,enableKeyboard:!0,quitOnEnd:!1,quitOnImgClick:!1,quitOnDocClick:!0,onStart:!1,onEnd:!1,onLoadStart:!1,onLoadEnd:!1},n),u=m([]),d=m(),f=m(),l=0,o=0,h=0,p=!1,g=function(o){if(p)return!1;if(o=void 0!==o&&("left"==o?1:-1),f.length){if(!1!==o&&(u.length<2||!0===c.quitOnEnd&&(-1===o&&0==u.index(d)||1===o&&u.index(d)==u.length-1)))return s(),!1;var t={opacity:0};S?E(f,100*o-h+"px",c.animationSpeed/1e3):t.left=parseInt(f.css("left"))+100*o+"px",f.animate(t,c.animationSpeed,function(){e()}),h=0}!(p=!0)!==c.onLoadStart&&c.onLoadStart(),setTimeout(function(){f=m("<img "+c.selector+" />").attr("src",d.attr("href")).on("load",function(){f.appendTo("body"),a();var t,n={opacity:1};f.css("opacity",0),S?(E(f,-100*o+"px",0),setTimeout(function(){E(f,"0px",c.animationSpeed/1e3)},50)):(t=parseInt(f.css("left")),n.left=t+"px",f.css("left",t-100*o+"px")),f.animate(n,c.animationSpeed,function(){(p=!1)!==c.onLoadEnd&&c.onLoadEnd()}),c.preloadNext&&((n=u.eq(r()+1)).length||(n=u.eq(0)),m("<img />").attr("src",n.attr("href")).trigger("load"))}).on("error",function(){!1!==c.onLoadEnd&&c.onLoadEnd()});var n,e=0,i=0;f.on(k?"pointerup MSPointerUp":"click",function(t){if(t.preventDefault(),c.quitOnImgClick)return s(),!1;if(x(t.originalEvent))return!0;t=(t.pageX||t.originalEvent.pageX)-t.target.offsetLeft;(d=u.eq(r()-(t<l/2?1:-1))).length||(d=u.eq(t<l/2?u.length:0)),g(t<l/2?"left":"right")}).on("touchstart pointerdown MSPointerDown",function(t){return!(x(t.originalEvent)&&!c.quitOnImgClick)||(S&&(i=parseInt(f.css("left"))),void(e=t.originalEvent.pageX||t.originalEvent.touches[0].pageX))}).on("touchmove pointermove MSPointerMove",function(t){return!((k||"pointermove"!=t.type)&&x(t.originalEvent)&&!c.quitOnImgClick)||(t.preventDefault(),n=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,h=e-n,void(S?E(f,-h+"px",0):f.css("left",i-h+"px")))}).on("touchend touchcancel pointerup pointercancel MSPointerUp MSPointerCancel",function(t){return!(x(t.originalEvent)&&!c.quitOnImgClick)||void(50<Math.abs(h)?((d=u.eq(r()-(h<0?1:-1))).length||(d=u.eq(h<0?u.length:0)),g(0<h?"right":"left")):S?E(f,"0px",c.animationSpeed/1e3):f.animate({left:i+"px"},c.animationSpeed/2))})},c.animationSpeed+100)},e=function(){if(!f.length)return!1;f.remove(),f=m()},s=function(){if(!f.length)return!1;f.animate({opacity:0},c.animationSpeed,function(){e(),(p=!1)!==c.onEnd&&c.onEnd()})};return m(v).on("resize",a),c.quitOnDocClick&&m(i).on(y?"touchend":"click",function(t){f.length&&!m(t.target).is(f)&&s()}),c.enableKeyboard&&m(i).on("keyup",function(t){return!f.length||(t.preventDefault(),27==t.keyCode&&s(),void(37!=t.keyCode&&39!=t.keyCode||((d=u.eq(r()-(37==t.keyCode?1:-1))).length||(d=u.eq(37==t.keyCode?u.length:0)),g(37==t.keyCode?"left":"right"))))}),m(i).on("click",t,function(t){return t.preventDefault(),!p&&((p=!1)!==c.onStart&&c.onStart(),d=m(this),void g())}),this.each(function(){u=u.add(m(this))}),this.switchImageLightbox=function(t){var n,e=u.eq(t);return e.length&&(n=u.index(d),d=e,g(t<n?"left":"right")),this},this.quitImageLightbox=function(){return s(),this},this.addToImageLightbox=function(t){m(t).each(function(){u=u.add(m(this))})},this}}(jQuery,window,document);
2
3 jQuery(document).ready(function(e){window.imageLightboxCaptionOn=function(){var t=e('a[href="'+e("#imagelightbox").attr("src")+'"]').data("title");null!=t&&0<t.length&&e('<div id="imagelightbox-caption">'+t+"</div>").appendTo("body")},window.imageLightboxCaptionOff=function(){e("#imagelightbox-caption").remove()},window.imageLightboxArrowsOn=function(i,n){var t=e('<button type="button" class="imagelightbox-arrow imagelightbox-arrow-left"></button><button type="button" class="imagelightbox-arrow imagelightbox-arrow-right"></button>');t.appendTo("body"),t.on("click touchend",function(t){t.preventDefault();var o=e(this),t=e(n+'[href="'+e("#imagelightbox").attr("src")+'"]').index(n);return o.hasClass("imagelightbox-arrow-left")?(--t,e(n).eq(t).length||(t=e(n).length)):(t+=1,e(n).eq(t).length||(t=0)),i.switchImageLightbox(t),!1})},window.imageLightboxArrowsOff=function(){e(".imagelightbox-arrow").remove()},window.imageLightboxCloseButtonOn=function(t){e('<button type="button" id="imagelightbox-close" title="Close"></button>').appendTo("body").on("click touchend",function(){return e(this).remove(),t.quitImageLightbox(),!1})},window.imageLightboxCloseButtonOff=function(){e("#imagelightbox-close").remove()},window.imageLightboxLoadingOn=function(){e('<div id="imagelightbox-loading"><div></div></div>').appendTo("body")}});
4