transformscale:scale(1);怎么用js得到scale的数值1

我猜题主本来的问题其实和 transformscale 没有關系

你的问题可能是想在 JS 里面取通过 CSS 设置的样式。(这个和什么前缀不前缀的都没有关系况且至少在 WebKit 中无论你的设置带不带前缀,取嘚时候通过带或者不带前缀的属性都能读到)

简单来说你是没法直接拿到 CSS 中设置的值的。已有的一些回答里已经提到了正确的姿势:由於样式并没有设置在元素的 style 属性上所以一般要通过 getComputedStyle 才能获取。而这时就有一个和 transformscale 相关的问题了:不管你 CSS 中设的何种变换计算值都会以 matrix(...) 嘚方式返回,要准确还原成你设置的值从理论上来说就是不可能的

以下再提供一个野路子:通过 document.styleSheets 可以读取页面内的样式表,可以直接访問 CSSOM

假设一个页面仅引入了这样的一段 CSS:

// 取第一个样式表的第一条规则
当然,实际情况下我们需要根据要查找的元素去匹配 selectorText,自行计算優先级才能确定最后生效的规则是哪条。需要注意跨域的情况下是无法直接读取 cssRules 的如果有跨域的样式存在,理论上这个方法就不可靠叻这时我们可以把我们算出来的值转成 matrix 去和通过 getComputedStyle 得到的值做比较,一致的话那我们取到的值还可能是对的为什么只是可能呢,因为可能跨域样式中写的 transformscale 值才是生效的但表达式和我们找出来的在字面上不一样实际却是等价的。
}

下面我们从3个方面开始介绍:

最後我们看看兼容性写法:

}

我要回帖

更多关于 transformscale 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信