嗨我正在尝试让这个脚本在li向上滚动时一个接一个地显示随机颜色但是到目前为止我已经做到了这一点但它不顺利它在重新启动时会改变所以你没有得到平滑的效果它改变颜色两次任何帮助将是非常感谢。
$("#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 :(得分: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);
问题:
$(li:last div)
选择它,因为三个div在列表中循环。特别选择div1,div2或div3时,它可能位于列表中的任何位置$(li:last div)
语句之前进行颜色更改(至少使用after()
选择器)。您的原始代码会更改div的顺序,然后更改颜色