jquery随机颜色

问题描述:

嗨我试图让这个脚本显示随机颜色一个接一个地滚动起来,但到目前为止我已经这样做,但它不光滑,它重新启动时发生变化,所以你不顺利效果,它会改变颜色两次任何帮助将非常感谢。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 2012-04-03 23:06:46

+0

不,到目前为止有3个div,但我想要的是当它们被隐藏时它们会改变颜色,而不会像现在它们在顶端时那样改变颜色,因为它们在滚动之前会闪烁另一种颜色。 – 2012-04-05 11:57:11

工作代码:

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); 

的问题:

  • 你正在改变每一格的颜色在每一个区间,当你真的只希望改变在列表中的最后一个
  • 当您更改最后一个div的颜色时,您需要使用$(li:last div)来选择它,因为三个div在整个列表中循环。当您特别选择div1,div2或div3时,它可能位于列表中的任何位置
  • 颜色变化(至少在$(li:last div)选择器中)需要在after()语句之前发生。您的原始代码更改div的顺序,然后更改颜色
+0

谢谢!作品完美,你解释它的方式是现货。 – 2012-04-07 17:42:41

+0

没问题!你能点击答案左边的检查来接受它吗? – ramblinjan 2012-04-08 00:08:31

+0

刚刚完成它..我没有尝试向上的箭头,但表示要求15点声望。谢谢 – 2012-04-09 09:35:20