Diga un div tiene esto que se le aplica:¿Obtener valores de translate3d de un div?
-webkit-transform: translate3d(0px, -200px, 0px)
¿Cómo podría recuperar esos valores con jQuery?
Diga un div tiene esto que se le aplica:¿Obtener valores de translate3d de un div?
-webkit-transform: translate3d(0px, -200px, 0px)
¿Cómo podría recuperar esos valores con jQuery?
El valor se almacena como matrix
o matrix3d
, dependiendo de si se configuró el valor z o no. Suponiendo que no haya otras transformaciones, para una matriz 2D, X e Y son los dos últimos valores. Para una matriz 3D, X, Y, Z, 1 son los últimos cuatro dígitos.
Se podría utilizar una expresión regular para obtener los valores:
function getTransform(el) {
var results = $(el).css('-webkit-transform').match(/matrix(?:(3d)\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))(?:, (\d+)), \d+\)|\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))\))/)
if(!results) return [0, 0, 0];
if(results[1] == '3d') return results.slice(2,5);
results.push(0);
return results.slice(5, 8);
}
EDITAR: Esto es incorrecto, ignore esto.
creo que si haces algo como ...
var styles = $('.myclass').css('-webkit-transform');
probablemente obtendría la parte posterior translate3d(0px, -200px, 0px)
.
¿Tal vez podría analizar esa cadena? parece un poco hackeo.
no, obtendría una matriz como esta: 'matriz (-1, -0.00000000000000012246467991473532, 0.00000000000000012246467991473532, -1, 0, 0)' – ProblemsOfSumit
¡ah, sí! Uch! Es por eso que dije * think *, * probably * and * maybe * :) – simonlchilds
Si cambia el patrón de la respuesta aceptada partido() a esto se añade soporte para los números negativos:
$(el).css('-webkit-transform').match(/matrix(?:(3d)\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))(?:, (-{0,1}\d+)), -{0,1}\d+\)|\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))\))/)
esto está devolviendo nulo en mi caso –
Si actualice la expresión regular a lo siguiente agrega soporte para esos casos impares cuando su transformación tiene flotantes:
/matrix(?:(3d)\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*)), -{0,1}\d+\.?\d*\)|\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))\))/
¿Ha intentado usar ['jQuery.css'] (http://api.jquery.com/css)? – namuol