我正在使用代码
found at CSS-Tricks来获取JavaScript的当前旋转变换(在CSS中).
JavaScript函数:
function getCurrentRotation( elid ) { var el = document.getElementById(elid); 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") || "fail..."; if( tr !== "none") { console.log('Matrix: ' + tr); var values = tr.split('(')[1]; values = values.split(')')[0]; values = values.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); // arc sin,convert from radians to degrees,round /** / var sin = b/scale; var angle = Math.round(Math.asin(sin) * (180/Math.PI)); /*/ var angle = Math.round(Math.atan2(b,a) * (180/Math.PI)); /**/ } else { var angle = 0; } // works! console.log('Rotate: ' + angle + 'deg'); $('#results').append('<p>Rotate: ' + angle + 'deg</p>'); }
根据帖子,这适用于超过180度的值,我得到负数,360deg返回零.我需要能够正确地返回180-360度的度数值.
这个代码不能让它返回180度的正确度数,我做错了什么?
如果你观看演示会更有意义:See the pen for a demo of this in action.
解决方法
原文地址:https://www.jb51.cc/js/157669.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。