2011-10-26 26 views
2

下のスクリプトは完全に動作します。しかし、それは私が達成しようとしているものではありません。私は1つの色を選択し、ホバー上のリンクごとにすべての色をサイクリングするのではなく、その上にとどまるために 'ホバリング'したいと思います。あなたは、私がここにhttp://www.morxmedia.com/jQueryランダムなリンクの色でホバー

$(document).ready(function() { 
    original = $('.menu-item a').css('color'); 
    $('.menu-item a').hover(function() { //mouseover 
    var rand = Math.floor(Math.random() * 4); 
if(rand == 0){var col = '#EAD325';} 
else if(rand == 1){var col = '#FE902F';} 
else if(rand == 2){var col = '#82BE38';} 
else if(rand == 3){var col = '#217AFC';} 
else{var col = '#888888';} 

    $(this).animate({'color': col,}); 
    },function() { //mouseout 
    $(this).animate({ 
     'color': original, 
    }); 
    }); 
}); 

答えて

2

リンクごとにランダムな色を生成し、配列に保存します。ホバーでは、それはどの色であるべきかをチェックし、それにアニメートします。私はJavaScriptを使用して非常に効率的ではありませんよhttp://jsfiddle.net/fRqj2/

$(document).ready(function() { 

    var assignedColors = new Array(); 

    $('.menu-item a').each(function(i) { 
     var rand = Math.floor(Math.random() * 4); 
     if (rand == 0) { 
      var col = '#EAD325'; 
     } 
     else if (rand == 1) { 
      var col = '#FE902F'; 
     } 
     else if (rand == 2) { 
      var col = '#82BE38'; 
     } 
     else if (rand == 3) { 
      var col = '#217AFC'; 
     } 
     else { 
      var col = '#888888'; 
     } 
     assignedColors[i] = col; 
    }); 

    original = $('.menu-item a').css('color'); 
    $('.menu-item a').hover(function() { //mouseover 
     index = $(this).parent().prevAll().length; 
     $(this).animate({ 
      'color': assignedColors[index] 
     }); 
    }, function() { //mouseout 
     $(this).animate({ 
      'color': original, 
     }); 
    }); 
}); 
+0

ありがとう!しかし、jsfiddleで色をランダム化しているようには見えません。 – Stephen

+0

ここで動作します。ページの再読み込み時にのみ色を更新する必要があることに同意しますか?これを試してみてください:http://jsfiddle.net/fRqj2/1/ - それは警告にランダムな色を投稿する必要がありますupdaing :) –

+0

うーん、まあ私はちょうどそれが私が使用していた他のコード..それはランダムな色を持っているようだし、あなたがここで見ることができる別のランダムな色に消えているようです:http://morxmedia.com/あなたのコードを使用しています – Stephen

0

あなたは.data()を持つ要素に色をマークすることができたくない効果の例を見ることができます。このようなもの:

... 
    col = $(this).data("hoverColor"); // Tries to load the color for the element 
    if (! col) { 
    col = getRandomColor(); 
    $(this).data("hoverColor", col); // Saves the color for the element 
    } 
    ... 
+0

は、実施例を参照してください。私はhtml/CSSとグラフィックデザインのhahaに最適です。これを私がリストした色でコピー&ペーストできるように書き直せますか?私は本当にそれを感謝します。 :) – Stephen

関連する問題