Javascript 如何在使用转换矩阵数据时考虑转换源
Javascript how to factor in transform-origin when using transform matrix data
我试图找到转换元素的四个角。但是我目前只有转换原点设置为 0, 0 的元素的解决方案。
我目前的步骤是:
使用 获取 css 转换矩阵
var matrix=getComputedStyle(element).transform.
将元素转换设置为"无"。
element.style.transform='none';
获取元素的未转换边界框
var box= element.getBoundingClientRect();
重新应用转换。
使用变换矩阵重新创建未变换的矩形坐标
//2d only matrix example
var x=(matrix[0]*point[0])+(matrix[2]*point[1])+matrix[4];
var y=(matrix[1]*point[0])+(matrix[3]*point[1])+matrix[5];
您可以在此处查看测试用例 https://jsfiddle.net/pkxzf30t/
如何处理具有非 0、0 转换原点的元素?
转换源属性等效(或者,如果您喜欢这样的话,可以类似)转换之前的转换和转换之后的反向转换。
在你的例子中,假设你有一个变换原点:10px 20px;和一个变换:rotate(20度)
这相当于
- 变换: 翻译(-10px -20px)
- 您的变换(在这种情况下旋转,但您将使用矩阵)
- 变换: 翻译(10px 20px)
你可以用旧的方式做到这一点(在开始时从x中减去10px,在末尾添加10px),或者计算复合矩阵并逐步完成
相关文章:
- 如何使用下划线js转换这些数据
- 将json回调数据转换为日期
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何将JSON数据转换为变量,解析并输出为HTML
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 将数据结构转换为二进制数据
- 如何将 Oracle 数据转换为 JSON,然后在 JavaScript 中使用
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- Javascript 如何在使用转换矩阵数据时考虑转换源
- 使用用户输入动态转换数据(Highcharts,JavaScript,Django)
- 从sqlite PHP转换数据
- 如何使用正则表达式以另一种形式转换数据
- 计算平均值并转换数据表javascript
- d3.js使用nest转换数据
- 转换数据:image/png;base64转换为数据库中的图像类型
- 转换数据属性以获取/发布数据
- 使用groupBy和map来使用LoDash和Moment转换数据
- Javascript转换数据语法-删除引号
- 使用交叉筛选器转换数据集
- Javascript / Json转换数据格式