una traduccion sintesis resumen proteinas paso insertar imagen fases etapas desde como carpeta adn javascript css3

traduccion - ¿Cómo obtengo la posición de un elemento después de la traducción css3 en JavaScript?



traduccion del adn pdf (2)

Ok, agárrate fuerte porque esto no es bueno:

window.addEventListener(''load'', function(){ var node = document.getElementById("yourid"); var curTransform = new WebKitCSSMatrix(window.getComputedStyle(node).webkitTransform); console.log(node.offsetLeft + curTransform.m41); //real offset left console.log(node.offsetTop + curTransform.m42); //real offset top });

Puedes jugar con él aquí:

http://jsfiddle.net/duopixel/wzZ5R/

Vi esto publicado en 2 formas diferentes en stackoverflow, pero las soluciones no funcionan para mí.

Esencialmente, tengo un artículo que traduciré. Cuando hago un obj.style.left u obj.offsetLeft, después de que el elemento se haya traducido, obtengo 0. ¿Hay alguna forma de obtener las coordenadas / posición de un elemento después de que se haya traducido con css3?

No puedo usar jQuery (porque no puedo y también porque quiero entender la solución, no solo usar la biblioteca sin entender lo que sucede debajo)

¿Algunas ideas?

¡Muchas gracias!


Puedes usar getBoundingClientRect() :

Imagina el siguiente bloque html:

<div class="centralizer popup"> <div class="dragger"></div> </div>

Y el estilo:

body { background:#ccc; } .centralizer { position:absolute; top:150px; left:170px; width:352px; height:180px; overflow:auto; -webkit-transform: translateY(-50%) translateX(-50%); -moz-transform: translateY(-50%) translateX(-50%); -ms-transform: translateY(-50%) translateX(-50%); transform: translateY(-50%) translateX(-50%); } .popup { background:white; box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1), 0 0 15px rgba(0, 0, 0, 0.3); border-radius:3px; } .dragger { background:#eee; height:35px; border-radius:3px 3px 0 0; border-bottom:1px solid #ccc; }

Ahora puedes usar el siguiente javascript para obtener la posición correcta:

var popup = document.querySelector(''.popup''); var rect = popup.getBoundingClientRect(); console.log("popup.getBoundingClientRect(): /n" + "x: " + rect.left + "/ny: " + rect.top);

Puedes consultar el resultado en el jsfiddle :

Probé en FF, IE y Chrome, y funcionó en todas mis pruebas.