Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript获取组件的translateX值?_Javascript_Html_Css_Dom - Fatal编程技术网

如何使用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文件作为文本读取以提取值(不容易)是的,我在上次评论后看到了您的编辑。我已经把它删除了。两种选择都很有效。非常感谢你。