2015-09-25 171 views
-1

我试图改变一个渐变背景的颜色实物迷幻的方式(颜色将是不可思议)更改颜色(铬)

我写了下面的代码,但我不明白为什么我根本不能改变背景颜色。

var start1 = [0,216,255]; 
var start2 = [50,255,224]; 
setInterval(function(){ 
    $("body").css("background", "-webkit-gradient(linear, 0% 0%, 100% 0%, from(rgb("+start1[0]+", "+start1[1]+", "+start1[2]+")), to(rgb("+start2[0]+", "+start2[1]+", "+start2[2]+")));"); 
    start1[0] = checknumber(start1[0]+1); 
    start1[1] = checknumber(start1[1]+1); 
    start1[2] = checknumber(start1[2]+1); 
    start2[0] = checknumber(start1[0]+1); 
    start2[1] = checknumber(start1[1]+1); 
    start2[2] = checknumber(start1[2]+1); 
},100); 

我没有得到任何错误,背景只保留白色。我猜这将是比我想象的

的的checknumber()功能只检查,如果数大于255-如果是那么它在0

+0

这将是*多*简单的设置这个CSS类,然后只需用'addClass ()'在'body'元素上。 –

+0

小提琴会让你很容易帮到你 – Saar

回答

1

重置回你在寻找一个更复杂一点这样的事情:

http://jsfiddle.net/4nuhpmov/

的问题是你的CSS语法,我想你可能已经使用旧的参考。

我改变了CSS操纵的JavaScript如下:

$("body").css("background", 
    "linear-gradient(" + degrees + "deg, rgba(" + start1[0] + ", " + start1[1] + ", " + start1[2] + ", 1), rgba(" + start2[0] + ", " + start2[1] + ", " + start2[2] + ", 1))"); 

我还增加了度的计数器。

这可能不是最好的办法,但它应该让你开始(我不认为这是像你期望的那么微妙/疯狂,但你可以玩弄值)。

您可以使用下面的链接找到最先进的日期语法:

https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient