Получить новую позицию элемента после анимации перевода CSS3?

Я использую анимацию перевода CSS3, чтобы переместить объект, скажем, на 10 пикселей.

@-webkit-keyframes move{
  0% {}
100% {
     -webkit-transform: translate(10px);
     }  
}

Если изначально объект был слева=10px, то теперь он должен быть слева=20px. Однако, когда я делаю

document.getElementById("obj").style.left

он возвращает мне значение 10px даже после анимации. Как получить новое значение с помощью javascript? Желательно ответ без jQuery или любого другого фреймворка :)


person eku    schedule 01.01.2012    source источник
comment
Возможный дубликат stackoverflow.com/questions/4975727/   -  person    schedule 01.01.2012


Ответы (1)


Левое значение такое же, как элемент был перемещен, а не перемещен с абсолютным позиционированием.

Кроме того, именно поэтому они так эффективны, поскольку браузер может точно сказать, что перерисовывать, поэтому его можно легко аппаратно ускорить и т. д., поскольку перевод не влияет ни на что другое на странице.

Вы можете изучить матрицу преобразования, используемую внутри, с помощью WebKitCSSMatrix, а затем добавить ее к существующему смещению, но вы, скорее всего, обнаружите, что проще либо изучить, почему вам нужно это сделать, либо отслеживать вручную (например, если вы начали с 10px, затем переведенный на 15px, вы теперь на 25px.)

person Rich Bradshaw    schedule 01.01.2012