目的:动态获取元素transform中的rotateY
属性
问题:如图,
试了ele.style.transform
和$ele.css('transform')
两种办法,第一种只能获取内联样式;用jQuery出来的是奇怪的matrix3d变换矩阵, 有没有办法用JS直接获取在<style>
中设置的'transform'样式的值呢?
目的:动态获取元素transform中的rotateY
属性
问题:如图,
试了ele.style.transform
和$ele.css('transform')
两种办法,第一种只能获取内联样式;用jQuery出来的是奇怪的matrix3d变换矩阵, 有没有办法用JS直接获取在<style>
中设置的'transform'样式的值呢?
用document.getElementById(‘element’).style.xxx可以获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到;
用$('').css()获取的是最终渲染规则,transform最终产生的渲染规则是以矩阵maxrix(x,x,x,x,x)的形式保存。
这是zepto的源代码,可以看一下$('').css()函数获取CSS属性的实现
所以对于要操作transform样式,还是直接写在元素style属性上,用内联样式,然后document.getElementById(‘element’).style.xxx就可以获取到了
获得矩阵变换
let transform = $(targetNode).css('transform')
// matrix(6.12323e-17, 1, -1, 6.12323e-17, 0, 0)
let transformMatrix = transform.slice(7, transform.length - 1).split(', ')
// ["6.12323e-17", "1", "-1", "6.12323e-17", "0", "0"]
矩阵各个值
matrix(scaleX, skewY, skewX, scaleY, translateX, translateY)
8 回答4.8k 阅读✓ 已解决
6 回答3.5k 阅读✓ 已解决
5 回答2.9k 阅读✓ 已解决
5 回答6.4k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
5 回答1.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
这个好像无法直接获取,所以需要转换下。
老外给出的办法。