如何使用javascript获取组件的translateX值?
我需要获取组件的如何使用javascript获取组件的translateX值?,javascript,html,css,dom,Javascript,Html,Css,Dom,我需要获取组件的translateX值 我遵循了这篇文章第一和第二个答案的说明: 我也查看了其他帖子,但大多数帖子都提出了相同的解决方案 我还检查了matrix()文档。但我没能把它做好 我试图使用WebKitCSSMatrix,它为我提供了矩阵,但我认为我需要的位置(m41)是0,其他位置都不是实际的translateX值 我还尝试使用getComputedStyle,这给了我以下信息:矩阵(1,0,0,1,-1352,0),我可以使用第五个值,但我不知道如何提取它,我尝试了m41,但我得到了
translateX
值
我遵循了这篇文章第一和第二个答案的说明:
我也查看了其他帖子,但大多数帖子都提出了相同的解决方案
我还检查了matrix()
文档。但我没能把它做好
我试图使用WebKitCSSMatrix
,它为我提供了矩阵,但我认为我需要的位置(m41)是0
,其他位置都不是实际的translateX值
我还尝试使用getComputedStyle
,这给了我以下信息:矩阵(1,0,0,1,-1352,0)
,我可以使用第五个值,但我不知道如何提取它,我尝试了m41
,但我得到了未定义的。我知道我可以使用RegEx
来获取第五个值,但我想知道是否有更直接的方法来实现这一点。除此之外,最好在我设置它们时获取值,以百分比的形式,就像在css文件中,200%
除此之外,我还尝试了简单的元素.style.transform
,但这里我得到了一个空字符串
我想知道两件事:
->我的代码有什么问题
->我如何才能真正获得translateX
值
函数passTeste(arg){
常量元素=document.getElementById(“mainImage teste js”)
const transformValue=window.getComputedStyle(元素).transform;
var矩阵=新的WebKitCSSMatrix(element.WebKittTransform);
console.log(element.style.transform)//返回空值
console.log(矩阵);//返回矩阵
log(transformValue);//返回=>矩阵(1,0,0,1,-1352,0)
}
.container{
宽度:200px;
溢出:隐藏;
}
.product\uuu图像--主图像{
显示器:flex;
过渡:2s;
转换:翻译(-200%);
}
.product\uuu图像--主图像img{
最大宽度:100%;
}
.container>p{
显示器:flex;
证明内容:之间的空间;
字体大小:45px;
光标:指针;
}
>
您几乎很好,只需将计算值应用于WebKitCSSMatrix
即可读取m41
,由于变换基于元素维度,因此您也可以找到百分比值:
函数passTeste(arg){
const元素=document.querySelector(#main image teste js>div)
const transformValue=window.getComputedStyle(元素).transform;
const w=window.getComputedStyle(元素).width;
var矩阵=新的WebKitCSSMatrix(转换值);
控制台日志(w);
控制台日志(矩阵m41);
console.log(矩阵m41/parseInt(w)*100+“%”;
}
.container{
宽度:200px;
溢出:隐藏;
}
.product\uuu图像--主图像{
显示器:flex;
过渡:2s;
转换:翻译(-200%);
}
.product\uuu图像--主图像img{
最大宽度:100%;
}
.container>p{
显示器:flex;
证明内容:之间的空间;
字体大小:45px;
光标:指针;
}
>
我知道我可以使用正则表达式来获取第五个值,但我想知道是否有更直接的方法来实现这一点。-->不是真的。唯一的另一种方法是读取CSS文件以提取定义的值(也不是微不足道的)@Berg_Durden您需要像我一样进行计算(检查更新),或者将CSS文件作为文本读取以提取值(不容易)是的,我在上次评论后看到了您的编辑。我已经把它删除了。两种选择都很有效。非常感谢你。