Да, это возможно сделать!
Параметры матрицы идут в следующем порядке: matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
Подробнее об этом читайте здесь
Если вы хотите получить числа из этой строки (матрица (1,0,0,1,720,290), вы можете использовать это регулярное выражение:
style = window.getComputedStyle(elem1, null);
trans = style.transform;
numberPattern = /-?\d+\.?\d*/g;
values = trans.match( numberPattern );
Это вернет следующий массив:
["1", "0", "0", "1", "720", "290"]
Редактировать после комментариев
Значения, возвращаемые в window.getComputedStyle, являются вычисленными значениями (т. е. проценты, которые вы использовали, преобразуются в значения пикселей). Вы можете обратить этот расчет вспять, но вам нужно знать, какой процент используется, чтобы выяснить, сколько пикселей должно быть.
Введите преобразования CSS3
Одна интересная особенность преобразований CSS заключается в том, что при применении их с процентными значениями они основывают это значение на размерах элемента, на котором они реализуются, в отличие от таких свойств, как верх, право, низ, лево, поля и отступы. , которые используют только размеры родителя (или в случае абсолютного позиционирования, который использует его ближайший относительный родитель). Источник
если вы используете следующий расчет, вы сможете получить проценты, которые вы использовали:
style = window.getComputedStyle(elem1, null);
trans = style.transform;
numberPattern = /-?\d+\.?\d+|\d+/g;
values = trans.match( numberPattern );
computedTranslateX = values[4];
computedTranslatey = values[5];
xPercentage = (computedTranslateX / elem1.offsetWidth) * 100;
yPercentage = (computedTranslateY / elem1.offsetHeight) * 100;
person
Douwe de Haan
schedule
28.03.2017