2012-04-03 10 views
0

こんにちは私は、リがスクロールアップするときにランダムな色を表示するようにしようとしていますが、これまでこれをやっていますが、スムーズではないので、効果があり、色が2回変わると助けになるでしょう。jqueryのランダムな色

$("#carousel ul").animate({marginTop:-100},2000,function(){ 

    function pad(s,i,c,r){ 
    i=i+1-s.length; 
    if(i<1)return s; 
    c=new Array(i).join(c||" "); 
    return r?s+c:c+s; 
    }; 

    hue = "#"+pad((Math.random()*0x1000000<<0).toString(16),6,"0"); 
    hue2 = "#"+pad((Math.random()*0x1000000<<0).toString(16),6,"0"); 
    hue3 = "#"+pad((Math.random()*0x1000000<<0).toString(16),6,"0"); 

    $(this).find("li:last").after($(this).find("li:first")); 
    $('#div1').css({backgroundColor: hue}); 
    $('#div2').css({backgroundColor: hue2}); 
    $('#div3').css({backgroundColor: hue3}); 

    $(this).css({marginTop:0}); 
    }) 
    },1000); 
}); 

私の例では、ここで事前にhttp://swipedstudio.com/jtoy/ 感謝を見つけることができます!

+0

最初の読み込み後は、色が上になるたびに色が変わるようにしたいという問題があります? – ramblinjan

+0

いいえ、これまでのところ3つの区画がありますが、私が望むのは、隠されているときに色が変わるということです。 –

答えて

0

の作業コード:

var t = setInterval(function(){ 

$("#carousel ul").animate({marginTop:-100},2000,function(){ 

    function pad(s,i,c,r){ 
    i=i+1-s.length; 
    if(i<1)return s; 
    c=new Array(i).join(c||" "); 
    return r?s+c:c+s; 
    }; 

    hue = "#"+pad((Math.random()*0x1000000<<0).toString(16),6,"0"); 

    $(this).find("li:last div").css({backgroundColor: hue}); 
    $(this).find("li:last").after($(this).find("li:first")); 

    $(this).css({marginTop:0}); 
    }) 
    },1000); 

問題:

  • あなただけのリストの最後の1を変更したいときは本当にあなたはすべての区間上のすべてのdivの色を変えた
  • 最後のdivの色を変更するときは、$(li:last div)を使用して選択する必要があります。これは、3つのdivがリスト内を循環するためです。 div1、div2、またはdiv3を選択すると、リスト内の任意の場所に表示される可能性があります。
  • ステートメントの前に色の変更(少なくとも$(li:last div)セレクター)が必要です。元のコードはdivの順番を変更してから色を変更します
+0

ありがとう!完璧に働いて、あなたがそれを説明したところでは、それにスポットがあった。 –

+0

問題ありません!答えの左側のチェックをクリックしてそれを受け入れることができますか? – ramblinjan

+0

ちょうどそれをやった..私は上向きの矢印をしようとしたが、投票は15の評判を必要とすると述べた。ありがとう –

関連する問題