Вы удаляете исходное изображение здесь:
newImg.animate(css, SPEED, function() {
img.remove();
newImg.removeClass('morpher');
(callback || function() {})();
});
И все, что осталось, это newImg
. Затем вы сбрасываете ссылку на ссылку на изображение, используя #rocket
:
$("#rocket").attr('src', ...
Но у вашего newImg
нет атрибута id
, не говоря уже о id
из rocket
.
Чтобы это исправить, вам нужно удалить img
, а затем установить атрибут id
для newImg
в rocket
:
newImg.animate(css, SPEED, function() {
var old_id = img.attr('id');
img.remove();
newImg.attr('id', old_id);
newImg.removeClass('morpher');
(callback || function() {})();
});
И тогда вы снова получите блестящую черную ракету: http://jsfiddle.net/ambiguous/W2K9D/
ОБНОВЛЕНИЕ : Лучшим подходом (как отметил mellamokb) было бы скрыть исходное изображение и затем показать его снова, когда вы нажмете кнопку сброса. Сначала измените действие сброса на что-то вроде этого:
$("#resetlink").click(function(){
clearInterval(timerRocket);
$("#wrapper").css('top', '250px');
$('.throbber, .morpher').remove(); // Clear out the new stuff.
$("#rocket").show(); // Bring the original back.
});
А в функции newImg.load
возьмите изображения оригинального размера:
var orig = {
width: img.width(),
height: img.height()
};
И, наконец, обратный вызов для завершения морфируемой анимации становится следующим:
newImg.animate(css, SPEED, function() {
img.css(orig).hide();
(callback || function() {})();
});
Новое и улучшенное: http://jsfiddle.net/ambiguous/W2K9D/1/
Утечка $('.throbber, .morpher')
вне плагина не самая лучшая вещь, но это не имеет большого значения, если это задокументировано.