2011-09-11 14 views
6

私はjquery colorを使用していくつかのランダムな色を生成しています。ユーザーがラジオボタンのラベルの上を移動したときに表示されるID。jquery random color hover

this site上の例に続いて、私は私が試すかもしれないと思った:

spectrum(); 

function spectrum(){ 

var hue = ('lots of stuff here that generates random hue -- code on example webpage') 

$('label').hover(function() { 
    $(this).animate({ color: hue }, 10000) }); 

spectrum(); 

} 

マイホバーセレクターが動作していないとすべてがそのデフォルト色を滞在しています。私は明らかにこれを何とかしているが、何がうまくいかないのか理解するのに十分な経験はない。助言がありますか?

+0

あなたのHTMLとCSSを投稿してください。何がうまくいかないかを知るには十分なコードがここにありません。 – maxedison

+0

何が必要ですか?体からのもの以外はCSSはありません。 htmlは単なる入力タグの集まりです。 – yoshi

答えて

16

これを試してみてください:

$(document).ready(function() { 
    $('label').hover(function() { 
     var hue = 'rgb(' 
      + (Math.floor(Math.random() * 256)) + ',' 
      + (Math.floor(Math.random() * 256)) + ',' 
      + (Math.floor(Math.random() * 256)) + ')'; 
     $(this).stop().animate({ color: hue }, 500); 
    },function() { 
     $(this).stop().animate({ color: '#000' }, 500); 
    }); 
}); 

はまた、私jsfiddleを参照してください。

=== === UPDATE

function startAnimation(o) { 
    var hue = 'rgb(' 
     + (Math.floor(Math.random() * 256)) + ',' 
     + (Math.floor(Math.random() * 256)) + ',' 
     + (Math.floor(Math.random() * 256)) + ')'; 
    $(o.currentTarget).animate({ color: hue }, 500, function() { 
     startAnimation(o); 
    }); 
} 

$(document).ready(function() { 
    $('label').hover(
     startAnimation, 
     function() { 
      $(this).stop().animate({ color: '#000' }, 500); 
     } 
    ); 
}); 

私の更新jsfiddleを参照してください。

+0

これは私が達成したいものに本当に近いです。ホバリングをするたびにランダムになるのではなく、色をランダムに変えたいと思っています。 例:1秒ごとに色が変わり、3秒間ホバーすると、ユーザーは3色を見るはずです.... hmm私は停止を取り除くと何が起こるのだろうか。 – yoshi

+0

ああ、大丈夫。 jqueryカラープラグインはある色を別の色に '遷移させる'関数を呼び出します。色を変え続けるために、再帰的に自身を呼び出します。私はそこにこのスクリプトをドロップし、それは動作します!しかし、それはまだ何か間違っているので、それは多くの処理能力を必要とし、私はホバリング毎回ウェブサイトの停止が必要なので間違っている – yoshi

+0

ああ!私はureコードがやっていることを通して私を歩くことができますか? startAnimationが "o"を渡すのはどういう意味ですか? – yoshi

0

jQueryがカラーアニメーションをサポートしていないという主な問題。より多くの結果が見つかりましたjQuery: animate text color for input field?

+0

私は彼がランダムな色を生成するのにトラブルがあるとは思わない。それは彼に問題を与えているjquery.colorプラグインでその色を適用しています。 – maxedison

+0

入手しました。ありがとう。 – Samich

0

$('label').hoverは、ラベルにmouseover/mouseoutイベントを追加します。あなたはスペクトルを何度も繰り返し呼んでいるので、これを無限にやっています。 代わりにこれを試してください。

$('label').hover(function() { 
    (function anim() { 
     var hue = //hue stuff 
     $(this).animate({ 
      color: hue 
     }, 10000, function() { 
      anim(); 
     }); 
    })(); 
}, function() { 
    $(this).animate({ 
     color: //original color 
    }, 1000); 
});