- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一段在 java 中工作的代码,该代码采用 RGB 并基于数组淡入下一种颜色,并将 RGB 更改为十六进制以便 javascript 理解它。 (我确实更改了数组和变量以与 javascript 兼容)...但是,它似乎仍然不起作用。我试图排除故障并找到解决方案,但找不到任何解决方案。我一直注意到的问题是,蓝色似乎被跳过了,而绿色被改变了。我认为设置点以某种方式设置为负数,但我不知道在哪里以及为什么。感谢您的帮助(抱歉,如果代码和这段文字有点长)
var curColorHex;
var targetRGBVals = [];
var rgbIncrement;
var nextRainbowVal = [];
nextRainbowVal[0]=255;
nextRainbowVal[1]=0;
nextRainbowVal[2]=0;//RED
nextRainbowVal[3]=255;
nextRainbowVal[4]=165;
nextRainbowVal[5]=0;//Orange
nextRainbowVal[6]=255;
nextRainbowVal[7]=255;
nextRainbowVal[8]=0;//Yellow
nextRainbowVal[9]=0;
nextRainbowVal[10]=255
nextRainbowVal[11]=0;//Green
nextRainbowVal[12]=0;
nextRainbowVal[13]=0;
nextRainbowVal[14]=255;//Blue
nextRainbowVal[13]=111;
nextRainbowVal[14]=0;
nextRainbowVal[15]=255;//Indigo
nextRainbowVal[16]=143;
nextRainbowVal[17]=0;
nextRainbowVal[18]=255;//Violet
var rgbVals = [];
var curColor = [];
var colorIndex;
var equal = [];
function onPageLoad(){//this is only code specific to my problem, none of the other code
colorIndex=0;
equal[0]=true;
equal[1]=true;
equal[2]=true;
rgbIncrement=1;//+1 so increment can't equal 0
curColor[0]=nextRainbowVal[0];
curColor[1]=nextRainbowVal[1];
curColor[2]=nextRainbowVal[2];
setInterval("backgroundChange();",10);
}//onPageLoad
function backgroundChange(){//all for loops are set to 3 because RGB never goes above 3 different variables (less chance of error)
for(var i=0;i<3;i++){
rgbVals[i]=curColor[i];
}//for
targetRGBVals[0] = nextRainbowVal[colorIndex];//Initializes the targetRGB val
targetRGBVals[1] = nextRainbowVal[colorIndex+1];
targetRGBVals[2] = nextRainbowVal[colorIndex+2];
for(var i=0; i<3; i++){//for loop to see if it has reached target
if(targetRGBVals[i] != rgbVals[i]){
equal[i] = false;
}//if
else equal[i]=true;
}//for
if(equal[0]&&equal[1]&&equal[2]){//changes setpoints after the RGB vals have reached their target
if(colorIndex>(nextRainbowVal.length-3)){//this keeps setting the color index to next color when the curColor is at target, if it gets to the last color, it resets at beginning of array
colorIndex = 0;
}//if
for(var g = 0; g<targetRGBVals.length; g++){//this sets the next target RGB vals
targetRGBVals[g] = nextRainbowVal[colorIndex+g];
}//for
colorIndex += 3;
}//if
for(var m = 0; m<rgbVals.length; m++){//this loop adds/subtracts from RGB vals by the increment, and also checks if the color is within the amount of the increment (so it doesn't bounce back and forth between colors)
if((rgbVals[m] != targetRGBVals[m])&& !equal[m]){
if((rgbVals[m]>=(targetRGBVals[m] - rgbIncrement))&&(rgbVals[m]<=(targetRGBVals[m] + rgbIncrement))) rgbVals[m] = targetRGBVals[m];
else rgbVals[m] += targetRGBVals[m] > rgbVals[m] ? +rgbIncrement : -rgbIncrement;
if(rgbVals[m]<0) rgbVals[m]=0;
}//if
}//for
curColor = rgbVals;
console.log(curColor);
console.log(rgbToHex(curColor[0],curColor[1],curColor[2]));
hexColor = rgbToHex(curColor[0],curColor[1],curColor[2]);
document.getElementById("bodyColor").style.backgroundColor=hexColor;
}//backgroundChange
function componentToHex(c){
console.log(c);
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}//componentToHex
function rgbToHex(r,g,b){
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}//rgbToHex
最佳答案
假设这不过是吸引眼球,那么浏览器支持就不是主要问题。如果是这种情况,那么以下内容将适用于除 IE 9 及以下版本之外的所有版本(但它确实适用于 IE 10):
CSS:
#bodyColor {
animation: holyfuckrainbows 10s linear;
-webkit-animation: holyfuckrainbows 10s linear;
}
@keyframes holyfuckrainbows {
0% {background-color:#f00}
16% {background-color:#f80}
33% {background-color:#ff0}
50% {background-color:#0f0}
66% {background-color:#00f}
83% {background-color:#70f}
100% {background-color:#90f}
}
@-webkit-keyframes holyfuckrainbows {
0% {background-color:#f00}
16% {background-color:#f80}
33% {background-color:#ff0}
50% {background-color:#0f0}
66% {background-color:#00f}
83% {background-color:#70f}
100% {background-color:#90f}
}
无需 JavaScript。根据需要调整 10s 以延长或缩短彩虹的持续时间。
如果你需要它循环,你可以通过在 10s
之后添加 infinite
来实现。
关于Javascript Background Color Fade RGB 算法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15169653/
假设我有一个颜色数组(具有整个色谱,从红色到红色。)。较短的版本如下所示: public Color[] ColorArray = new Color[360] { Color.FromArgb(25
当我通过 http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwww.gamefriction.com%2FCoded&prof
我需要帮助来解决验证 CSS。在这里,我在 W3 验证中遇到了 20 个相同的错误。我不明白。如果您能解决此问题,我将不胜感激。 错误:两种上下文中 color 和 background-color
我正在尝试覆盖 bootstrap4 样式。 我没有使用 Sass 的经验,但这看起来像是 bootstrap SCSS 文件中的错误。 我的自定义文件是: /* custom.scss */
我是 sass 的新手,我写了一些 sass 代码,但它没有编译。 $classes : primary secondary success warning danger; $colors
我想制作一个散点图,其中每个点都有一个球体。点及其球体都根据某些列值着色。 一个显示我想要的最小示例: library(ggplot2) library(vcd) # only needed for
我正在尝试添加一个选项来更改网站颜色。所以,我有一个工作正常的色域,但问题是当鼠标悬停时我需要将颜色更改为深 10%。函数 darken 表示第一个参数必须是颜色。 Error: argument `
我正在尝试从下拉菜单中更改主题颜色,但出现此错误:“预期类型为'List>'的值,但类型为之一 'MappedListIterable>' Color selected ; MaterialApp(
有没有办法将 Inno Setup 底部面板的背景颜色更改为白色? 谢谢你的帮助! 最佳答案 您描述的底部面板实际上是向导表单的区域,因此您只需设置 Color WizardForm 的属性(prop
sublime text包Color Highlighter看起来很有用。但是,它的行为似乎并不像文档中描述的那样。 根据文档: Usage : Just click or move the curs
我有一个由 Excel 2007 创建的文档: ... 在 xl/styles.xml 的字体定义中包含以下颜色: 我从ECMA标准了解到这个颜色索引指的是收藏于 xl/styles.xml如果有
简单问题: (如何)是否可以设置 的值在 Chrome 中选择此类输入时,要在颜色选择器中清空吗? 编辑:我想将输入的值更改为 "" 最佳答案 我认为它不能设置为透明,但您可以使用value="#c
我正在尝试截屏,检查屏幕截图中的某种颜色,如果找到该颜色,则单击它。 我遇到的问题是颜色的 RGB 值必须准确。 我想知道是否可以将图像转换为颜色很少的图像。 抱歉打扰了。我没有受过适当的训练。我现在
有谁知道为什么 CSS 为文本提供了 color,但没有 font-color 或 text-color? 看起来很反直觉,有点像text-decoration: underline 而不是font-
我想弄清楚为什么 mix-blend-mode: color; css 选择器和值会影响除白色以外的所有颜色,而不是影响除白色和黑色以外的所有颜色。有人可以向我解释为什么会这样吗? 最佳答案 来自 t
我正在尝试创建 Angular 2 主题,我按照网站上提到的教程进行操作。这是我的主题文件。 @import '~@angular/material/theming'; @include mat-co
我正在尝试更改 ProgressBar 中栏的颜色 pBar.setStyle("-fx-accent: green"); 但我遇到了一个问题:这似乎不适合我! (或者我只是不明白一些事情) 这是代码
给定最大迭代次数 = 1000 给我一些关于如何着色(红色、绿色、蓝色)的想法。我现在能想到的只有蹩脚的 2 种颜色渐变:( 真的有可能想出像这样美丽的东西吗? 最佳答案 该死的,他们不会让我一个新手
要将 url 参数解码为颜色,我使用此 HttpMessageConverter: public class ColorHttpMessageConverter implements HttpMess
我创建了一个显示色谱的自定义控件。我正在覆盖 OnRender() 方法以使用颜色绘制控件。由于某种原因,“计算”的颜色(R G B 值)具有一定的透明度,即使我将 Alpha 值 (A) 设置为最大
我是一名优秀的程序员,十分优秀!