ここで元の画像を削除します。
newImg.animate(css, SPEED, function() {
img.remove();
newImg.removeClass('morpher');
(callback || function() {})();
});
そして、残るのはnewImg
. 次に、次を使用してリンク参照をリセットします#rocket
。
$("#rocket").attr('src', ...
しかし、 your にはof は言うまでもなく属性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')
これまでで最高のものではありませんが、文書化されている限り大したことではありません.