Ответ 1
Когда вы изменяете свойство left
элемента, вы можете связать с ним логическое значение (например, используя data()) и установите его на 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);
}