Проблема в том, что вы добавляете контент, а затем переключаете класс одновременно.Если вы удалите вызов .appendTo()
, он будет работать нормально:
$(".imageOriginal").toggleClass("imageAnimated");
Вот демоверсия: http://jsfiddle.net/38FrD/1/
Я не совсем уверен, что происходит, но если вы смотрите изображениеВ FireBug вы можете видеть, что добавляемое свойство transition
имеет длительность 0s
, даже если указана длительность.
Также .delay()
работает только для очередей (например, .animate()
вызовы).
ОБНОВЛЕНИЕ
Если вы поместите вызов .toggleClass()
внутри анонимной функции setTimeout
, то он будет работать так, как вам нужно:
$(".run").click(function() {
var $this = $(".imageOriginal");
$this.appendTo('.insert');
setTimeout(function () {
$this.toggleClass("imageAnimated");
}, 0);
});
Вот демоверсия: http://jsfiddle.net/38FrD/2/