I need to get the translateX
value of my component.
I followed the instructions of both first and second answers of this post: How to get value translateX by javascript
I checked other posts as well, but most of them suggest the same solutions.
I also checked the matrix()
documentation. But I am not able to get it right.
I am trying to use WebKitCSSMatrix
which gives me the matrix, but the position which I believe to be what I need (m41) is 0
, and none of the others is the actual translateX value.
I am also trying with getComputedStyle
, which gives me this: matrix(1, 0, 0, 1, -1352, 0)
, I could work with the fifth value, but I don't know how to extract it, I tried with m41
, but I am getting undefined
. I know I could use a RegEx
to get the fifth value, but I'd like to know if there is a more straightforward way to do that. Besides it would be better to get the value as I set them, as percentage, like in the css file, 200%
Besides that I tried the simple element.style.transform
, but here I get an empty string.
I'd like to know two things:
-> What is wrong with my code?
-> How can I actually get the translateX
value?
function passTeste(arg) {
const element = document.getElementById("mainImage-teste-js")
const transformValue = window.getComputedStyle(element).transform;
var matrix = new WebKitCSSMatrix(element.webkitTransform);
console.log(element.style.transform) // Returns empty value
console.log(matrix); // Returns the matrix
console.log(transformValue); // Returns => matrix(1, 0, 0, 1, -1352, 0)
}
.container {
width: 200px;
overflow: hidden;
}
.product__image--mainImage {
display: flex;
transition: 2s;
transform: translate(-200%);
}
.product__image--mainImage img {
max-width: 100%;
}
.container > p {
display: flex;
justify-content: space-between;
font-size: 45px;
cursor: pointer;
}
<div id="mainImage-teste-js" class="container">
<div class="product__image--mainImage">
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOues59dCMXRYVPt6H8XvWGAuPlwHBprFWEw&usqp=CAU" />
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUEwJ_CKwAt4M1k_UTZSUCVUTy2XWjWLdK3w&usqp=CAU" />
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOues59dCMXRYVPt6H8XvWGAuPlwHBprFWEw&usqp=CAU" />
<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSUEwJ_CKwAt4M1k_UTZSUCVUTy2XWjWLdK3w&usqp=CAU" />
</div>
<p onclick="passTeste()">></p>
</div>