目的:动态获取元素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 回答5.9k 阅读✓ 已解决
9 回答9.3k 阅读
6 回答4.9k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
5 回答8k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
这个好像无法直接获取,所以需要转换下。
老外给出的办法。