Es actualmente finales de 2015, y la situación ha cambiado ligeramente. En primer lugar, el comentario de McBrainy sobre la capitalización anterior es importante. El prefijo webkit
ahora es Webkit
, pero por suerte solo lo usa Safari en este momento. Tanto Chrome como Firefox son compatibles con el.style.transform
sin el prefijo ahora, y creo que IE también lo hace. A continuación hay una solución un poco más moderna para la tarea en cuestión. Se comprueba primero para ver si aún hay que anteponer nuestra propiedad transform:
var transformProp = (function(){
var testEl = document.createElement('div');
if(testEl.style.transform == null) {
var vendors = ['Webkit', 'Moz', 'ms'];
for(var vendor in vendors) {
if(testEl.style[ vendors[vendor] + 'Transform' ] !== undefined) {
return vendors[vendor] + 'Transform';
}
}
}
return 'transform';
})();
Después, sólo podemos utilizar una simple llamada de una sola línea para actualizar la propiedad transform
sobre un elemento:
myElement.style[transformProp] = 'translate3d(0,' + dynamicY + 'px,0)';
Asegúrese de que escribe en mayúscula el nombre de la propiedad ('Transform' en lugar de' transform'). Descubrí esto de la manera difícil ... –