先获取transform属性,有两种方式,一种是直接使用jquery来获取
$('#xxx').css('transform'); // 'matrix(1, 0, 0, 1, 0, 0)' 浏览器console.log()出来的就是这个值
另外一种就是通过原生js来获取transform的属性
var el = document.getElementById('xxx');
var st = window.getComputedStyle(el, null);
var tr = st.getPropertyValue('-webkit-transform') ||
st.getPropertyValue('-moz-transform') ||
st.getPropertyValue('-ms-transform') ||
st.getPropertyValue('-o-transform') ||
st.getPropertyValue('transform') ||
'FALL';
//兼容不同的内核的写法 //'matrix(1, 0, 0, 1, 0, 0)' 浏览器console.log()出来的就是这个值
网上看到有说这两种途径获取的打印结果不一致,但是在浏览器console中打印出来的结果是一致的,贴图为证,双击放大查看,
下面分别计算图片的放大或者缩小倍数:
var values = tr.split('(')[1].split(')')[0].split(',');//获取矩阵值,转为数组
var a = values[0];
var b = values[1];
var c = values[2];
var d = values[3];
var scale = Math.sqrt(a * a + b * b);
console.log('Scale: ' + scale);//放大或者缩小值
var angle = Math.round(Math.atan2(b, a) * (180 / Math.PI));
console.log('Rotate: ' + angle + 'deg');//旋转的角度