Javascript 在不弄乱页面的情况下设置默认颜色

Javascript 在不弄乱页面的情况下设置默认颜色,javascript,jquery,html,css,colors,Javascript,Jquery,Html,Css,Colors,所以我有一个脚本,可以将RGB转换为十六进制,反之亦然。但是当我加载页面时,背景是黑色的。因此,我转到代码中的相应部分,如下所示 function update() { var red = parseInt($(".r").val(), 10); var green = parseInt($(".g").val()); var blue = parseInt($(".b").val()); red = red || 255; green = green |

所以我有一个脚本,可以将RGB转换为十六进制,反之亦然。但是当我加载页面时,背景是黑色的。因此,我转到代码中的相应部分,如下所示

function update() {
    var red = parseInt($(".r").val(), 10);
    var green = parseInt($(".g").val());
    var blue = parseInt($(".b").val());
    red = red || 255;
    green = green || 255;
    blue = blue || 255;
    var rgb = RGB2HTML(red, green, blue);
    $(".hex").val(rgb);
   $("body").css("background", rgb);
}
我变了

red = red || 0;
green = green || 0;
blue = blue || 0;

所以现在当我做
0157255时,我得到了这个

所以我回到默认的
0
。当我输入相同的RGB时,我得到这个


因此,我的第一个问题是,我如何在不打乱整个脚本的情况下为首次发布选择自己的背景。我的第二个问题是当我输入带有
#
前缀的十六进制时。脚本无法运行。这就是我所期望的。但是当我对十六进制执行RGB时,它会在十六进制字段中放入一个
#
。所以我想阻止这种情况发生。黑色背景的演示。有什么想法吗?

在JavaScript的底部,您有:

$(function () {
    $('.r, .g, .b').keyup(update);
    update();
});
这正在运行
update()。您可能可以删除该行,并将CSS中的
正文添加到您喜欢的颜色

body {
  color:#f00;
  transition: 1s;
}
其次,当您更改RGB值时,十六进制值将在输入中用#更新,因为您正在显式设置该值。在
update()
中,调用
RGB2HTML()
,执行十六进制输入并将其设置为:

return '#' + hex(red) + hex(green) + hex(blue);
删除它,然后可以将其添加到update()的最后一行,这样输入就不会得到它,但在设置背景时会包含它

$("body").css("background", "#" + rgb);

就您的粉色/蓝色问题而言,它不起作用的原因是您设置了不同的颜色。当达到:

red = red || 255;

红色变为255,而不是输入的0。在另一个实例中,r仍然是0。r=0的颜色与r=255的颜色不同。您可以执行isNaN检查,以检查生成的整数是否有效,而不是您现在的操作方式。

在JavaScript的底部,您有:

$(function () {
    $('.r, .g, .b').keyup(update);
    update();
});
这正在运行
update()。您可能可以删除该行,并将CSS中的
正文添加到您喜欢的颜色

body {
  color:#f00;
  transition: 1s;
}
其次,当您更改RGB值时,十六进制值将在输入中用#更新,因为您正在显式设置该值。在
update()
中,调用
RGB2HTML()
,执行十六进制输入并将其设置为:

return '#' + hex(red) + hex(green) + hex(blue);
删除它,然后可以将其添加到update()的最后一行,这样输入就不会得到它,但在设置背景时会包含它

$("body").css("background", "#" + rgb);

就您的粉色/蓝色问题而言,它不起作用的原因是您设置了不同的颜色。当达到:

red = red || 255;

红色变为255,而不是输入的0。在另一个实例中,r仍然是0。r=0的颜色与r=255的颜色不同。您可以执行isNaN检查,以检查生成的整数是否有效,而不是您现在的操作方式。

在JavaScript的底部,您有:

$(function () {
    $('.r, .g, .b').keyup(update);
    update();
});
这正在运行
update()。您可能可以删除该行,并将CSS中的
正文添加到您喜欢的颜色

body {
  color:#f00;
  transition: 1s;
}
其次,当您更改RGB值时,十六进制值将在输入中用#更新,因为您正在显式设置该值。在
update()
中,调用
RGB2HTML()
,执行十六进制输入并将其设置为:

return '#' + hex(red) + hex(green) + hex(blue);
删除它,然后可以将其添加到update()的最后一行,这样输入就不会得到它,但在设置背景时会包含它

$("body").css("background", "#" + rgb);

就您的粉色/蓝色问题而言,它不起作用的原因是您设置了不同的颜色。当达到:

red = red || 255;

红色变为255,而不是输入的0。在另一个实例中,r仍然是0。r=0的颜色与r=255的颜色不同。您可以执行isNaN检查,以检查生成的整数是否有效,而不是您现在的操作方式。

在JavaScript的底部,您有:

$(function () {
    $('.r, .g, .b').keyup(update);
    update();
});
这正在运行
update()。您可能可以删除该行,并将CSS中的
正文添加到您喜欢的颜色

body {
  color:#f00;
  transition: 1s;
}
其次,当您更改RGB值时,十六进制值将在输入中用#更新,因为您正在显式设置该值。在
update()
中,调用
RGB2HTML()
,执行十六进制输入并将其设置为:

return '#' + hex(red) + hex(green) + hex(blue);
删除它,然后可以将其添加到update()的最后一行,这样输入就不会得到它,但在设置背景时会包含它

$("body").css("background", "#" + rgb);

就您的粉色/蓝色问题而言,它不起作用的原因是您设置了不同的颜色。当达到:

red = red || 255;

红色变为255,而不是输入的0。在另一个实例中,r仍然是0。r=0的颜色与r=255的颜色不同。您可以执行isNaN检查,以检查生成的整数是否有效,而不是您现在执行的方式。

将其更改为执行此操作,以解决第一个问题:

red = isNaN(red) ? 255 : red;
green = isNaN(green) ? 255 : green;
blue = isNaN(blue) ? 255 : blue;
对于第二个问题,将RGB2HTML更改为不返回“#”:

然后更改
$(“body”).css(“background”,rgb)在“#”前面加上前缀:


将其更改为执行此操作以解决第一个问题:

red = isNaN(red) ? 255 : red;
green = isNaN(green) ? 255 : green;
blue = isNaN(blue) ? 255 : blue;
对于第二个问题,将RGB2HTML更改为不返回“#”:

然后更改
$(“body”).css(“background”,rgb)在“#”前面加上前缀:


将其更改为执行此操作以解决第一个问题:

red = isNaN(red) ? 255 : red;
green = isNaN(green) ? 255 : green;
blue = isNaN(blue) ? 255 : blue;
对于第二个问题,将RGB2HTML更改为不返回“#”:

然后更改
$(“body”).css(“background”,rgb)在“#”前面加上前缀:


将其更改为执行此操作以解决第一个问题:

red = isNaN(red) ? 255 : red;
green = isNaN(green) ? 255 : green;
blue = isNaN(blue) ? 255 : blue;
对于第二个问题,将RGB2HTML更改为不返回“#”:

然后更改
$(“body”).css(“background”,rgb)在“#”前面加上前缀:


这几乎解决了所有问题。但是问题的结果不正确。在哪里将#添加到十六进制字段?是的,那是下半场。请澄清。好的,第一个问题的发送部分。看到上面的粉红色和蓝色屏幕了吗?我输入相同的RGB,但得到不同的十六进制。我已添加到我的答案中。它是另一种颜色b