This repository has been archived by the owner on Jan 7, 2021. It is now read-only.
/
jquery.transform.min.js
6 lines (6 loc) · 2.98 KB
/
jquery.transform.min.js
1
2
3
4
5
6
/*
* https://github.com/heygrady/transform
* Copyright 2010, Grady Kuhnline
* Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function(f){var a=document.createElement("div"),b=a.style,k="transform",kJ="transformJ",n="Transform",e=["O"+n,"ms"+n,"Webkit"+n,"Moz"+n,k],g=e.length,l,h,c,m=/Matrix([^)]*)/;while(g--){if(e[g] in b){f.support[k]=l=e[g];continue}}if(!l){f.support.matrixFilter=h=b.filter===""}a=b=null;f.cssNumber[kJ]=true;f.cssHooks[kJ]=c={get:function(o){var i=f.data(o,"transformJ")||{translate:[0,0],rotate:0,scale:[1,1],skew:[0,0]};i.toString=function(){return"translate("+this.translate[0]+"px,"+this.translate[1]+"px) rotate("+this.rotate+"rad) scale("+this.scale+") skew("+this.skew[0]+"rad,"+this.skew[1]+"rad)"};return i},set:function(D,B,s){if(typeof B==="string"){B=j(B)}var v=B.translate,C=B.rotate,F=B.scale,p=B.skew,E=D.style,x,t;f.data(D,"transformJ",B);if(!p[0]&&!p[1]){p=0}if(l){E[l]="translate("+v[0]+"px,"+v[1]+"px) rotate("+C+"rad) scale("+F+")"+(p?" skew("+p[0]+"rad,"+p[1]+"rad)":"")}else{if(h){if(!s){E.zoom=1}var o=Math.cos(C),i=Math.sin(C),r=o*F[0],q=-i*F[1],z=i*F[0],y=o*F[1],w,u,A;if(p){w=Math.tan(p[0]);u=Math.tan(p[1]);r+=q*u;q+=r*w;z+=y*u;y+=z*w}A=["Matrix(M11="+r,"M12="+q,"M21="+z,"M22="+y,"SizingMethod='auto expand'"].join();t=(x=D.currentStyle)&&x.filter||E.filter||"";E.filter=m.test(t)?t.replace(m,A):t+" progid:DXImageTransform.Microsoft."+A+")";if((centerOrigin=f.transformJ.centerOrigin)){E[centerOrigin=="margin"?"marginLeft":"left"]=-(D.offsetWidth/2)+(D.clientWidth/2)+"px";E[centerOrigin=="margin"?"marginTop":"top"]=-(D.offsetHeight/2)+(D.clientHeight/2)+"px"}E.left=v[0]+"px";E.top=v[1]+"px"}}}};f.fx.step.transformJ=function(q){var p=q.elem,t=q.start,i=q.end,s=q.pos,o={},r;if(!t||typeof i==="string"){if(!t){t=c.get(p)}if(h){p.style.zoom=1}q.end=i=j(i)}o.translate=[(t.translate[0]+(i.translate[0]-t.translate[0])*s+0.5)|0,(t.translate[1]+(i.translate[1]-t.translate[1])*s+0.5)|0];o.rotate=t.rotate+(i.rotate-t.rotate)*s;o.scale=[t.scale[0]+(i.scale[0]-t.scale[0])*s,t.scale[1]+(i.scale[1]-t.scale[1])*s];o.skew=[t.skew[0]+(i.skew[0]-t.skew[0])*s,t.skew[1]+(i.skew[1]-t.skew[1])*s];c.set(p,o,true)};function j(p){p=p.split(")");var q=[0,0],t=0,s=[1,1],x=[0,0],u=p.length-1,r=f.trim,v,o,w;while(u--){v=p[u].split("(");o=r(v[0]);w=v[1];if(o=="translateX"){q[0]+=parseInt(w,10)}else{if(o=="translateY"){q[1]+=parseInt(w,10)}else{if(o=="translate"){w=w.split(",");q[0]+=parseInt(w[0],10);q[1]+=parseInt(w[1]||0,10)}else{if(o=="rotate"){t+=d(w)}else{if(o=="scaleX"){s[0]*=w}else{if(o=="scaleY"){s[1]*=w}else{if(o=="scale"){w=w.split(",");s[0]*=w[0];s[1]*=(w.length>1?w[1]:w[0])}else{if(o=="skewX"){x[0]+=d(w)}else{if(o=="skewY"){x[1]+=d(w)}else{if(o=="skew"){w=w.split(",");x[0]+=d(w[0]);x[1]+=d(w[1]||"0")}}}}}}}}}}}return{translate:q,rotate:t,scale:s,skew:x}}function d(i){return ~i.indexOf("deg")?parseInt(i,10)*(Math.PI*2/360):~i.indexOf("grad")?parseInt(i,10)*(Math.PI/200):parseFloat(i)}f.transformJ={centerOrigin:"margin",radToDeg:function(i){return i*180/Math.PI}}})(jQuery);