2009-08-16 35 views
13

JQueryを使用して、私がしたいことは、関数を呼び出すときに、 "#page" DIVの背景色をCSS定義の背景色から黄色にフェードインさせる関数を作成することです#pageの元のCSS背景色に戻ります。JQueryヘルプ - 背景色のアニメーション

私はこれをJQueryでどのように行うことができますか?

JQueryには、「アニメーション」機能と「ハイライト」機能の両方が備わっています。それは "ハイライト"が適切なオプションかもしれないようだが、私は確信していない。

おかげ

答えて

2

あなたは、元の色にdiv背を向けるために、コールバックに内蔵されたjQueryの機能animate()を使用することができます。または、jQuery pulse pluginを使用して自動的に行います。

希望に役立ちます!

+0

このリンクは悪いです。更新できますか? – AdamJones

1

色の間でアニメーションを作成するには、colorプラグインが必要です。

は、あなたがどのようないくつかのコール「フラッシュ」を達成するためにこのようなthis oneなどのプラグインをチェックアウトすることができます以前のSO q & a

1

を参照してください。

残念ながら、「jquery flash plugin」という用語を検索すると、SWFプレーヤープラグインで何百もの結果が得られます。

7
function flashColor(id) 
{ 
    var container = $('#'+id); 
    if(container.length) 
    { 
     var originalColor = container.css('backgroundColor'); 
     container.animate({ 
      backgroundColor:'yellow' 
     },'normal','linear',function(){ 
      $(this).animate({ 
       backgroundColor:originalColor 
      }); 
     }); 
    } 
} 
+0

@Funky Dude、これは有望そうです。 「アニメート」機能を使用するには最低限のコンポーネントをダウンロードする必要がありますか?私がインストールしたJQueryの基本インストールには、 'animate'は含まれていないようです。 –

+0

ところで、http://docs.jquery.com/Release:jQuery_1。2/Effects#Color_Animationsは私がやりたいことですが、呼び出し可能な関数にします –

+0

jqueryそのもの以外 –

17

この1つのだけの機能のためのjQuery UIをロードすることはかなり重い。その、しかし、あなたはとにかくそれを使用している場合は、あなたが望む効果は「ハイライト」

http://docs.jquery.com/UI/Effects/Highlight

$("div").click(function() { 
     $(this).effect("highlight", {}, 3000); 
}); 
+0

@micmcg、どのようにして "ハイライト"メソッドをプログラムで呼び出すことができますか?ここでは、あなたの例ではマウスクリックで呼び出します。 –

+0

イベントハンドラ内のコードを使用してください。 $( "#page")。効果( "ハイライト"、{}、3000); – micmcg

+3

これを呼び出しても何も起こらない場合は、カスタムJQuery UIのダウンロードに実際にこの効果が含まれていることを確認してください。黙って失敗するのはトレンディな方法です。 –

6

あなたがあります名前付き色を使用する場合は、jQueryカラープラグインのみが必要です(例:'#FFFF9C'の代わりに'yellow')。 animateでさまざまな成功を収めましたが、jQueryのcssに組み込まれたコールバックを使用すると、ほとんどの場合問題なく動作するようです。

この機能を追加してみてください:

$(document).ready(function() { 

    $.fn.animateHighlight = function (highlightColor, duration) { 
     var highlightBg = highlightColor || "#FFFF9C"; 
     var animateMs = duration || 1000; 
     var originalBg = this.css("background-color"); 

     if (!originalBg || originalBg == highlightBg) 
      originalBg = "#FFFFFF"; // default to white 

     jQuery(this) 
      .css("backgroundColor", highlightBg) 
      .animate({ backgroundColor: originalBg }, animateMs, null, function() { 
       jQuery(this).css("backgroundColor", originalBg); 
      }); 
    }; 
}); 

などのようにそれを呼び出す:jQueryの1.5を(このためのUIのプラグインを必要としない)を使用して、IE9、FF4、およびChromeでテスト済み

$('#page').animateHighlight(); 

、 。すべてのブラウザと

1

テスト

$(document).ready(function() { 
    var id = $("div#1"); // div id=1 
    var color = "lightblue"; // color to highlight 
    var delayms = "800"; // mseconds to stay color 
    $(id).css("backgroundColor",color) 
    .css("transition","all 1.5s ease") // you may also (-moz-*, -o-*, -ms-*) e.g 
    .css("backgroundColor",color).delay(delayms).queue(function() { 
     $(id).css("backgroundColor",""); 
     $(id).dequeue(); 
    }); 
}); 
0

がこれだけは私を助けました。出典:questions/5205445

$("div").click(function() 
{ 
    // do fading 3 times 
    for(i=0;i<3;i++) 
    { 
    $(this).fadeTo('slow', 0.5).fadeTo('slow', 1.0); 
    } 
});