2012-01-10 4 views
2

私は単語の雲があり、そこからいくつかの固有の事前定義された単語を選び、色をスムーズに変更したいと考えています。基本的に私はこの、アニメーションによる色の変更を使用して検索語を強調表示するには

// font color animation 
$(".second a").hover(function() { 
$(this).animate({ color: "#00eeff" }, 400); 
},function() { 
$(this).animate({ color: "#FFFFFF" }, 500); 
}); 

代わりにホバーは、私はちょうどsetTimeout関数は、変更をトリガしたいトリガーというのをやってみたいです。どうやってやるの?どんな助けにも大いに感謝します

+0

です。 setTimeoutが機能しないのはなぜですか? – maxedison

+2

色をネイティブにアニメーション化することはできません。https://github.com/jquery/jquery-color –

答えて

0

ないあなたはどちらか欲しいものを確認してください、私はちょうど(似た何かをする方法の例を書いて、私は戻ってきませんよ、私の人生の15分を費やして、すべて同じではUIを使用していますカラーアニメーション用)。

var words = ['Lorem', 'Tatum'], 
    color = 'red', 
    elems = [], 
    T1 = setInterval(randomRed, 1000); 

$('#yourelements').each(function() { 
    if ($(this).text() == words[0] || $(this).text() == words[1]) { 
     elems.push($(this)); 
    } 
}); 

//I cut this down from the example in the fiddle, elements could be filtered in the below function instead? 

function randomRed() { 
    $(elems).each(function() { 
     var r1 = Math.random()*500, 
      r2 = Math.random()*1000; 
     $(this).delay(r1).animate({color: color}, r2, function() { 
      var r3 = Math.random()*500, 
       r4 = Math.random()*1000; 
      $(this).delay(r3).animate({color: 'black'}, r4); 
     }); 
    }); 
} 

ここで問題が何であるかは明らかではないfiddle!

+0

ちょっとした注意:jQuery UIがするのと同じ色のアニメーションを行う16KBのプラグインへの '.animate()'リンクのjQueryドキュメント(https://github.com/jquery/jquery-color) 。かなり近いサイズのjQuery UIのバージョンをダウンロードできますが、「Effects Core」(jQuery UI Coreも含む)を除くすべての選択を解除する必要があります。 – Jasper

+0

良いメモジャスパーは、実際に言及するつもりだったが、忘れてしまった。これは基本的には、最も基本的な方法で含まれている単語から要素を選択する方法と、ランダムな色のアニメーションを行う方法を示しています。 jQueryのcontainsメソッドまたはfilterメソッドを使用して、適切な要素を見つけることもできます。そこから、色を変更するのに十分なはずです。 – adeneo

0

まあ、実際には、あなたが探しているトリガーのようなものであれば、setTimeout ...を使うことができます。また、あなたは、私はそれはあなたが求めているものだと思う

var someMilliseconds = 500; 
setTimeout(function() { 
    // font color animation 
    $(".second a").animate({ 'color' : '#00eeff' }, 400); 
}, someMilliseconds); 

...それはこのようなものになるだろう

各jQueryのようなものを使用してコレクションを反復処理する必要があるでしょうか? :) .animate()のためのjQueryのドキュメントから

+0

コードをもう一度見てください。それは意味をなさないものです。 '.each()'関数には2つの関数が渡されています:http://api.jquery.com/each/ – Jasper

+0

あなたは正しいです、私は間違いました。私はそれを修正します。私は彼/彼女が何をしようとしているのか分からなかったと思う。 2つの異なるアニメーションが正しい?コードを修正します。 – farina

+0

実際には、「カラー」用のプラグインも必要です。申し訳ありませんが、これはちょっとした反応でした:) – farina

0

すべてのアニメーション化されたプロパティは、以下に示すよう除き、単一の数値、 にアニメーションする必要があります。数値以外のほとんどのプロパティは jQuery.Color()プラグインが使用されていない限り、基本的なjQuery機能(たとえば、幅、高さ、 または左にアニメーションできますが背景色は使用できません)を使用してアニメーション化することはできません。特に指定しない限り、プロパティ値は ピクセル数として扱われます。該当する場合は、単位emと%は と指定できます。

出典:

短い答え:あなたはjQueryを使って色をアニメーション化するプラグインが必要。あなたが継続的にリンクの色をアニメーション化したいならば、setInterval()を見てみましょう、それは意志、またhttp://jsfiddle.net/f4PEL/1/

:ここ

は、jQueryのドキュメントを使用することを示唆していることをプラグインとsetIntervalコールを使用してデモです1回ではなく間隔で実行します。 setTimeout()と同じ関数を再帰的に呼び出すことによって、この間隔の動作を模倣することもできます。

setInterval()のためのドキュメント:https://developer.mozilla.org/en/DOM/window.setInterval

関連する問題