Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2011, 16:31
cequiel
 
Fecha de Ingreso: mayo-2007
Ubicación: España
Mensajes: 147
Antigüedad: 17 años
Puntos: 3
css transform y obtener la posición actual

Muchos de ustedes sabréis que ahora se puede modificar la posición de un elemento dentro de una página web aplicando css. Por ejemplo:

Código CSS:
Ver original
  1. #mydiv {
  2.         -moz-transition-property: -moz-transform;
  3.         -moz-transition-duration: 1s;
  4.         -moz-transition-timing-function: ease-out;
  5.         -moz-transform: translate(100px, 100px);
  6. }

Si aplicamos el anterior css a mi objeto html:

Código HTML:
Ver original
  1. <div id="mydiv">Me deslizo suavemente como hoja mecida por el viento</div>

entonces el objeto cambia de posición suavemente y se coloca en las coordenadas (100, 100) dentro de la página web, sin necesidad de JavaScript. El problema viene cuando queremos calcular la posición exacta dentro de la página en un momento dado. Si habéis usado alguna vez jQuery, sabréis que la posición se obtiene mediante la función "offset":

Código Javascript:
Ver original
  1. var offset = $('#mydiv').offset(); // devuelve un objeto con la posición actual

El problema es que la función anterior ignora la transformación css y me devuelve un valor erróneo. Cómo podría calcular la posición de un objeto dentro de una página web a la que se ha aplicado una transformación css?

Muchas gracias.