2012-02-24 3 views
0
をアニメーション

My機能はjQueryのは問題

これはフィールドセット

enter image description here

のデフォルト境界線の色は、その

$("#variants").animateHighlight("red", "#9c9c9c", "borderColor", 3000); 

問題があるように、これを呼び出すこと

$.fn.animateHighlight = function(highlightColor, originalColor, type, duration) { 
    var highlightBg = highlightColor || "#FFFF9C"; 
    var animateMs = 500; 
    var animateVal1 = {}; 
    animateVal1[type] = highlightColor; 
    var animateVal2 = {}; 
    animateVal2[type] = originalColor; 
    this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs); 
}; 

のように見えます

そして、これはアニメーションの色

enter image description here

後、私はアニメーションの要素に余分なスタイル属性を追加することを知っています。私がしたいのは元のフィールドセットの境界線の色を元に戻すことです(スタイル属性を削除すると元の境界線の色に戻ります)。

ても起動しませんでした。この

this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs).removeAttribute('style'); 

アニメーション化する機能の最後の行を変更しようとしました。

フラッシュした後に元のバージョンにアニメーション化してリセットするにはどうすればよいですか?

答えて

0
this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs, function() { 
    this.removeAttribute('style'); 
}); 
+0

は、私が直接アニメーション化してリセットすることはできますか?私は2番目の色を使用するのではなく、元の状態に直接使用することを意味しますか? – heron

+0

境界線の色を透明にアニメーション化し、動作するかどうかを確認してみてください。ただし、rgba色を使用する必要があります。 – adeneo

0

私はこの2つの方法を考えています。

1. VariantDiv.Defaultのstye属性でボーダーカラーを使用した場合スタイル属性を削除するとスタイルが失われます。したがって、最初の境界線の色を保持する必要があります。例については

:あなたはこの方法を行うことができますスタイルを使用しないとき2.Ifは

http://jsfiddle.net/tEwa9/

。 アニメーションが完了したらこのコードを呼び出すことができます。例えば

$(this).attr('style',''); 

http://jsfiddle.net/xSYWS/