Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么以前的背景色记录在变量C中?_Javascript_Jquery_Colors_Background - Fatal编程技术网

Javascript 为什么以前的背景色记录在变量C中?

Javascript 为什么以前的背景色记录在变量C中?,javascript,jquery,colors,background,Javascript,Jquery,Colors,Background,我想制作一个输出随机颜色的应用程序。但是颜色代码是前一个输出的。为什么以前的背景色记录在变量C中?请帮忙。 我的英语很差,sry。 我刚开始学习jquery 函数getNum(最小值、最大值){ 返回Math.floor(Math.random()*(max-min+1))+min; } 函数getColor(n){ $(“.color”+n).css( “背景色”, rgb(“+getNum(0255)+”、“+getNum(0255)+”、“+getNum(0255)+”) ); var

我想制作一个输出随机颜色的应用程序。但是颜色代码是前一个输出的。为什么以前的背景色记录在变量C中?请帮忙。 我的英语很差,sry。 我刚开始学习jquery

函数getNum(最小值、最大值){ 返回Math.floor(Math.random()*(max-min+1))+min; } 函数getColor(n){ $(“.color”+n).css( “背景色”, rgb(“+getNum(0255)+”、“+getNum(0255)+”、“+getNum(0255)+”) ); var c=$(“.color”+n).css(“backgroundColor”); $(“.color”+n).text(c) }; $(“#randcolor”)。单击(函数(){ getColor(1); getColor(2); getColor(3); }); $(文档).ready(函数(){ getColor(1); getColor(2); getColor(3); });
*{text align:center}
.颜色{
显示:内联块;
边界半径:10px;
宽度:200px;
高度:200px;
线高:200px;
颜色:#fff;
文本阴影:0 5px 10px rgba(0,0,0,8);
盒影:0 5px 10px rgba(0,0,0,5);
利润率:20px;
过渡:轻松。5s;
}

提供随机颜色

编辑:针对添加的魔法进行重构,包括Terry的jQuery方法链接建议:

函数getNum(str,char){ 返回str+Math.floor(Math.random()*257)+char; } 函数getColor(){ var color=“rgb”+[…”(,)].reduce(getNum); $(this.css(“背景色”),color.text(颜色); }; 函数changeColors(){ $.each($(“.color”)、getColor); } $(“#randcolor”)。单击(更改颜色); $(文档).ready(更改颜色)
*{text align:center}
.颜色{
显示:内联块;
边界半径:10px;
宽度:200px;
高度:200px;
线高:200px;
颜色:#fff;
文本阴影:0 5px 10px rgba(0,0,0,8);
盒影:0 5px 10px rgba(0,0,0,5);
利润率:20px;
过渡:轻松。5s;
}

提供随机颜色

原因很简单:您启用了CSS转换,因此背景色转换到下一种颜色需要时间。此转换以异步方式进行,但当背景色尚未完全转换时,您将在设置背景色后立即读取背景色。
.css()
方法使用
window.getComputedStyle()
,这意味着无论元素处于何种转换状态,它都会获取元素当前的背景颜色

我的建议是,您只需生成颜色并将其存储在变量中,然后根据我的评论,使用它设置
.css()
.text()
。通过这种方式,您还可以利用jQuery中的链接:

var backgroundColor = "rgb(" + getNum(0, 255) + "," + getNum(0, 255) + "," + getNum(0, 255) + ")";
$(".color" + n)
    .css("background-color", backgroundColor)
    .text(backgroundColor);
见下面的概念证明:

函数getNum(最小值、最大值){ 返回Math.floor(Math.random()*(max-min+1))+min; } 函数getColor(n){ var backgroundColor=“rgb(“+getNum(0255)+”、“+getNum(0255)+”、“+getNum(0255)+”); $(“.color”+n).css( “背景色”, 背景色 ).文本(背景色); }; $(“#randcolor”)。单击(函数(){ getColor(1); getColor(2); getColor(3); }); $(文档).ready(函数(){ getColor(1); getColor(2); getColor(3); });
*{text align:center}
.颜色{
显示:内联块;
边界半径:10px;
宽度:200px;
高度:200px;
线高:200px;
颜色:#fff;
文本阴影:0 5px 10px rgba(0,0,0,8);
盒影:0 5px 10px rgba(0,0,0,5);
利润率:20px;
过渡:轻松。5s;
}

提供随机颜色

我根本看不出问题所在:它似乎工作正常。另一方面,您不需要指定颜色并再次尝试读取:只需生成颜色,将其存储在变量中,然后使用该变量同时设置
.css()
.text()
。您可以提供HTML的一个片段,或者将其与我的进行比较吗?我想问题就在这里,关键是css的问题。脚本在整个转换过程中无法正常工作。我该如何解决这个问题?@Terry这是css的问题。脚本在整个转换过程中无法正常工作。我怎样才能解决这个问题?非常感谢。