JavaScript从常规CSS获取矩阵转换,并将matrix2D转换为matrix3D
我需要从像这样的常规CSS变换中得到矩阵变换:JavaScript从常规CSS获取矩阵转换,并将matrix2D转换为matrix3D,javascript,css,matrix,Javascript,Css,Matrix,我需要从像这样的常规CSS变换中得到矩阵变换:rotateX(10deg)rotateZ(10deg) 我知道WebKit(WebKitCSSMatrix)有一个现成的解决方案,但Firefox或IE没有这样的解决方案 因此,我尝试通过将转换设置为不可见(不在DOM中)并使用getComputedStyle获取矩阵,但如果元素隐藏或从文档中分离,则此方法不会返回任何结果 是否有一个将值转换为矩阵的好教程 那么,如何将二维矩阵转换为三维矩阵呢?从6到16个值…您可以自己计算矩阵。本页介绍如何将旋转
rotateX(10deg)rotateZ(10deg)
我知道WebKit(WebKitCSSMatrix)有一个现成的解决方案,但Firefox或IE没有这样的解决方案
因此,我尝试通过将转换设置为不可见(不在DOM中)并使用getComputedStyle获取矩阵,但如果元素隐藏或从文档中分离,则此方法不会返回任何结果
是否有一个将值转换为矩阵的好教程
那么,如何将二维矩阵转换为三维矩阵呢?从6到16个值…您可以自己计算矩阵。本页介绍如何将旋转描述为二维矩阵: 对于旋转,这将是: 可以通过这些属性访问矩阵值。对于2d,不需要修改最后一行。要在css中初始化矩阵,请使用:
矩阵(a、b、c、d、e、f)
对于3D矩阵您可以在这里找到一个很好的介绍:
然后阅读如何手动设置矩阵:
在这两种情况下,如果要应用多个变换,则必须将多个矩阵相乘。有关如何执行此操作的信息可在此处找到:您可以自己计算矩阵。本页介绍如何将旋转描述为二维矩阵: 对于旋转,这将是: 可以通过这些属性访问矩阵值。对于2d,不需要修改最后一行。要在css中初始化矩阵,请使用:
矩阵(a、b、c、d、e、f)
对于3D矩阵您可以在这里找到一个很好的介绍:
然后阅读如何手动设置矩阵:
在这两种情况下,如果要应用多个变换,则必须将多个矩阵相乘。有关如何执行此操作的信息,请参见此处:注意:
getComputedStyle
方法仅适用于附加到文档中的元素让我们从一个函数开始,该函数将使的元素成为隐藏元素,并将其附加到文档中:
var make_test_el =
function () {
var el = document.createElement("div");
// some browsers doesn't add transform styles if display is inline
el.style.display = "block";
// to be sure your element won't be shown
el.style.width = "0px";
el.style.height = "0px";
el.style.margin = "0px";
el.style.padding = "0px";
el.style.overflow = "hidden";
document.body.appendChild(el);
return el;
}
然后通过以下代码使用它:
演示: 您将看到的结果可能是
矩阵3d(…)
或矩阵(…)
它取决于浏览器的RenderEngine和给定值
例如:
IE10将始终为您提供
矩阵3d(…)
但是对于chrome和opera而言,取决于给定值
但是我不知道如何将2D矩阵转换为3D矩阵 这个问题我也问过了
实际上,矩阵值很难理解
祝你好运…
注意:
getComputedStyle
方法仅适用于附加到文档中的元素让我们从一个函数开始,该函数将使的元素成为隐藏元素,并将其附加到文档中:
var make_test_el =
function () {
var el = document.createElement("div");
// some browsers doesn't add transform styles if display is inline
el.style.display = "block";
// to be sure your element won't be shown
el.style.width = "0px";
el.style.height = "0px";
el.style.margin = "0px";
el.style.padding = "0px";
el.style.overflow = "hidden";
document.body.appendChild(el);
return el;
}
然后通过以下代码使用它:
演示: 您将看到的结果可能是
矩阵3d(…)
或矩阵(…)
它取决于浏览器的RenderEngine和给定值
例如:
IE10将始终为您提供
矩阵3d(…)
但是对于chrome和opera而言,取决于给定值
但是我不知道如何将2D矩阵转换为3D矩阵 这个问题我也问过了
实际上,矩阵值很难理解
祝您好运……在您的图片中,vqlues是否表示m11、m21、m31、m12、m22、m32、m13、m23和m33?m值用于3d矩阵。使用属性a-f。在您的图片中,vqlues是否表示m11、m21、m31、m12、m22、m32、m13、m23和m33?m值用于3d矩阵。使用属性a-f。