Ya, hal itu mungkin dilakukan!
Parameter matriks berada dalam urutan berikut: matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
Baca lebih lanjut tentang hal ini di sini
Jika Anda ingin mengambil angka dari string itu (matriks(1,0,0,1,720,290) Anda dapat menggunakan ekspresi reguler ini:
style = window.getComputedStyle(elem1, null);
trans = style.transform;
numberPattern = /-?\d+\.?\d*/g;
values = trans.match( numberPattern );
Ini akan mengembalikan array berikut:
["1", "0", "0", "1", "720", "290"]
Edit setelah komentar
Nilai yang dikembalikan di window.getComputedStyle adalah nilai yang dihitung (yaitu persentase yang Anda gunakan diurai menjadi nilai piksel). Anda dapat membalikkan perhitungan itu, tetapi Anda perlu mengetahui persentase yang digunakan untuk mengetahui berapa banyak piksel yang seharusnya.
Masukkan Transformasi CSS3
Satu hal yang menarik tentang transformasi CSS adalah, ketika menerapkannya dengan nilai persentase, mereka mendasarkan nilai tersebut pada dimensi elemen tempat mereka diterapkan, dibandingkan dengan properti seperti top, right, bottom, left, margin, dan padding. , yang hanya menggunakan dimensi induknya (atau dalam hal pemosisian absolut, yang menggunakan induk relatif terdekatnya). Sumber
jika Anda menggunakan perhitungan berikut, Anda seharusnya bisa mendapatkan persentase yang Anda gunakan:
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