forked from jy1989/canvas.magnifier.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
canvas.magnifier.min.js
1 lines (1 loc) · 1.98 KB
/
canvas.magnifier.min.js
1
!function(e,t){"undefined"!=typeof module?module.exports=t():"function"==typeof define&&"object"==typeof define.amd?define(t):this[e]=t()}("JyMagnifier",function(){"use strict";var e=function(e){function t(e){g=e,C=p*g/2-p/2,T=y*g/2-y/2,n()}function i(e,t){var i=document.createElement("canvas");return i.width=e,i.height=t,i.style.width=e+"px",i.style.height=t+"px",i.style.background="#ffffff",i}function o(){u?f=document.getElementById(u):(f=document.createElement("div"),f.setAttribute("style","z-index:1989;position:absolute;display:none;"+c),f.style.width=p+"px",f.style.height=y+"px",f.style.top=R.offsetTop+10+"px",f.style.left=R.offsetLeft+10+"px",m&&(f.style.borderRadius=m+"px"),document.body.appendChild(f)),l=i(p,y),f.style.borderRadius&&(l.style.borderRadius=f.style.borderRadius),f.appendChild(l),r=l.getContext("2d"),a=i(R.width+p,R.height+y),a.style.display="none",document.body.appendChild(a),h=a.getContext("2d"),n()}function n(){h.clearRect(0,0,a.width,a.height),h.drawImage(R,p/2,y/2,R.width,R.height),r.clearRect(0,0,l.width,l.height),r.drawImage(a,I,S,p,y,-C,-T,p*g,y*g),x&&("rect"==x?b>0&&(r.fillStyle=w,r.fillRect(p/2-b/2,y/2-b/2,b,b)):"cross"==x&&(r.beginPath(),r.strokeStyle=w,r.moveTo(0,y/2),r.lineTo(p,y/2),r.stroke(),r.beginPath(),r.strokeStyle=w,r.moveTo(p/2,0),r.lineTo(p/2,y),r.stroke()))}function d(e,t){if(k){e.touches&&(e=e.touches[0]);var i=e.pageX,o=e.pageY;u||(t&&"function"==typeof t?t(f):(f.style.top=o-y+"px",f.style.left=i+p/4+"px")),I=e.offsetX||i-R.offsetLeft,S=e.offsetY||o-R.offsetTop,n()}}function s(e){k=e,f.style.display=k?"":"none"}var f,r,l,a,h,u=e.magnifierDivId,c=e.magnifierDivStyle||"border:1px solid #ccc;background:#fff;box-shadow:5px 5px 25px #000;",p=e.width||150,y=e.height||150,g=e.ratio||3,m="undefined"==typeof e.radius?p/2:e.radius,x=e.sightType||"rect",b="undefined"==typeof e.sightSize?5:e.sightSize,w=e.sightColor||"#FF0000",v=e.targetCanvasId,R=document.getElementById(v),C=p*g/2-p/2,T=y*g/2-y/2,k=!1,I=0,S=0;return o(),{bind:d,show:s,setRatio:t}};return e});