blob: f595ddd17008a5717a5f11b8701223ec3682d1d5 [file] [log] [blame]
// Zoom 1.3 - jQuery image zooming plugin
// (c) 2012 Jack Moore - jacklmoore.com
// license: www.opensource.org/licenses/mit-license.php
(function(e){var t={url:!1,icon:!0,grab:!1,callback:!1,duration:120};e.fn.zoom=function(n){return this.each(function(){var r=this,i=e(r),s=new Image,o=e(s),u,a=i.css("position"),f=e.extend({},t,n||{}),l="mousemove";i.css({position:/(absolute|fixed)/.test(a)?a:"relative",overflow:"hidden"});if(!f.url){f.url=i.find("img:first")[0].src;if(!f.url)return}f.icon&&(u=e('<div class="zoomIcon">').appendTo(i)),s.onload=function(){function p(){t=i.outerWidth(),n=i.outerHeight(),r=(s.width-t)/t,u=(s.height-n)/n}function d(e){a=e.pageX-h.left,c=e.pageY-h.top,a>t?a=t:a<0&&(a=0),c>n?c=n:c<0&&(c=0),s.style.left=a*-r+"px",s.style.top=c*-u+"px",e.preventDefault()}var t,n,r,u,a,c,h=i.offset();p(),o.addClass("zoomImg").css({position:"absolute",top:0,left:0,opacity:0,width:s.width,height:s.height,border:"none",maxWidth:"none"}).appendTo(i),f.grab?o.mousedown(function(t){h=i.offset(),e(document).one("mouseup",function(){o.stop().fadeTo(f.duration,0),e(document).unbind(l,d)}),p(),d(t),o.stop().fadeTo(e.support.opacity?f.duration:0,1),e(document)[l](d),t.preventDefault()}):o.hover(function(){h=i.offset(),p(),o.stop().fadeTo(e.support.opacity?f.duration:0,1)},function(){o.stop().fadeTo(f.duration,0)})[l](function(e){s.style.left=(e.pageX-h.left)*-r+"px",s.style.top=(e.pageY-h.top)*-u+"px"}),e.isFunction(f.callback)&&f.callback.call(s)},s.src=f.url})},e.fn.zoom.defaults=t})(jQuery);