Проверьте, анимируется ли элемент CSS3

Есть ли способ проверить, анимируется ли элемент?

Но будучи оживленнымне с анимацией jquery, но с переходом css3 ..

Проблема у меня есть ... У меня есть этот ползунок, по стрелке нажмите, я даю его

left = left+200

где слева либо

element.position().left

или же

parseInt(element.css("left"));

(это не имеет значения, проблема возникает с любым из них)

элемент анимируется с

transition: left 400ms ease-in-out;

поэтому, когда пользователь нажимает на стрелку один раз, а затем снова до завершения анимации, left возвращает значение в зависимости от его положения (так, вместо, скажем .. 400px, он может вернуть 235.47px, так как он был нажат в середине анимации) ..

 fxck16 мар. 2012 г., 13:24
Я не оживляю его до 400px, я оживляю его дотекущий слева + 220px, как я могу проверить, включен ли он уже?осталось после анимациикогда я действительно не знаюосталось после анимации..
 pimvdb16 мар. 2012 г., 13:12
Если вы оживите его до 400px, то разве 235.47px не скажет вам, что он анимирован?

Ответы на вопрос(1)

Решение Вопроса

left свойство элемента, вы можете связать с ним логическое значение (используяданные() например) и установите егоtrue чтобы указать переход начался. Затем вы можете привязать кконечное событие перехода (который зависит от браузера) и установите логическое значение обратноfalse от вашего обработчика, чтобы указать, что переход завершен.

Конечный результат примерно такой:

yourElement.on(
    "transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd",
    function() {
        $(this).data("transitioning", false);  // Transition has ended.
    }
);

(Обратите внимание, что приведенный выше код должен запускаться только один раз.)

if (!yourElement.data("transitioning")) {
    // No transition active, compute new position.
    var theNewLeft = yourElement.position().left + 200;
    // Set new position, which will start a new transition.
    yourElement.data("transitioning", true).css("left", theNewLeft);
}

Ваш ответ на вопрос