最近写了个旋转,有要求获取transform值。当看到console.log($("#id").css("transform"))的值的时候,我的内心是崩溃的

所以我特地找了下,虽然对矩阵还是不怎么理解,以下代码帮助理解吧

html代码

<div id="divTransform">
</div>
<script>
var nowDeg = $("#divTransform").css("transform");

function getmatrix(a,b,c,d){
var aa=Math.round(180*Math.asin(a)/ Math.PI);
var bb=Math.round(180*Math.acos(b)/ Math.PI);
var cc=Math.round(180*Math.asin(c)/ Math.PI);
var dd=Math.round(180*Math.acos(d)/ Math.PI);
var deg=0;
if(aa==bb||-aa==bb){
deg=dd;
}else if(-aa+bb==180){
deg=180+cc;
}else if(aa+bb==180){
deg=360-cc||360-dd;
}
return deg>=360?0:deg;
//return (aa+','+bb+','+cc+','+dd);
}
var values = nowDeg.split('(')[1].split(')')[0].split(',');
var a = values[0];
var b = values[1];
var c = values[2];
var d = values[3];
nowDeg = getmatrix(a,b,c,d);
console.log(nowDeg);
var nowDeg = $("#divTransform").css("transform");

function getmatrix(a,b,c,d){
var aa=Math.round(180*Math.asin(a)/ Math.PI);
var bb=Math.round(180*Math.acos(b)/ Math.PI);
var cc=Math.round(180*Math.asin(c)/ Math.PI);
var dd=Math.round(180*Math.acos(d)/ Math.PI);
var deg=0;
if(aa==bb||-aa==bb){
deg=dd;
}else if(-aa+bb==180){
deg=180+cc;
}else if(aa+bb==180){
deg=360-cc||360-dd;
}
return deg>=360?0:deg;
//return (aa+','+bb+','+cc+','+dd);
}
var values = nowDeg.split('(')[1].split(')')[0].split(',');
var a = values[0];
var b = values[1];
var c = values[2];
var d = values[3];
nowDeg = getmatrix(a,b,c,d);
console.log(nowDeg);
</script>

这样就能获取transform的值啦
posted on 2017-11-29 10:05  祁祁  阅读(3958)  评论(0编辑  收藏  举报