JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 为什么backgroundColor = rgb(a,b,c)工作?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<html>
    <head>
        <title> Colors </title>
    </head>

    <body>
    <script type="text/javascript">
        var a = parseInt(prompt("Enter R"));
        var b = parseInt(prompt("Enter G"));
        var c = parseInt(prompt("Enter B"));
        document.body.style.BACkgroundColor=rgb(a,b,c);
    </script>
    </body>
</html>

为什么背景颜色根据RGB值而不同?我做错了什么?

解决方法

您需要使用引号:
document.body.style.BACkgroundColor = 'rgb(' + a + ',' + b + ',' + c + ')';

JS Fiddle demo.

要么:

document.body.style.BACkgroundColor = 'rgb(' + [a,c].join(',') + ')';

JS Fiddle demo.

不引用JavaScript将变量作为参数a,b和c传递给一个名为rgb()的未定义函数.当您设置CSS属性时,您需要传递一个字符串,因此需要引用.

哦,你也使用parseInt(),它不需要传入一个基数,但是如果你这样做(基数是预期的数字基数),它会更好(并且更容易避免问题)):

var a = parseInt(prompt("Enter R"),10) || 255,b = parseInt(prompt("Enter G"),c = parseInt(prompt("Enter B"),10) || 255;

JS Fiddle demo(在演示中,我使用105,所以很明显,如果使用取消按钮,则使用默认值).

如果有人在提示符下点击“取消”,您可能需要提供一个默认参数,以确保实际的颜色值被传递,否则,否则我认为评估为false(假设你更喜欢255,但明显调整味道).

您当然也可以简单地定义一个函数:

function rgb(r,g,b) {
    return 'rgb(' + [(r||0),(g||0),(b||0)].join(',') + ')';
}
  var a = parseInt(prompt("Enter R"),10),10);
  document.body.style.BACkgroundColor = rgb(a,c);

JS Fiddle demo

而且,这种方法有可能允许使用自定义默认值(或许似是而非)的好处:

function rgb(r,def) {
def = parseInt(def,10) || 0;
    return 'rgb(' + [(r||def),(g||def),(b||def)].join(',') + ')';
}
var a = parseInt(prompt("Enter R"),10);
document.body.style.BACkgroundColor = rgb(a,c,40);

JS Fiddle demo

文献:

> || (logical OR) operator.
> Array.join().
> Element.style.
> parseInt().

大佬总结

以上是大佬教程为你收集整理的javascript – 为什么backgroundColor = rgb(a,b,c)工作?全部内容,希望文章能够帮你解决javascript – 为什么backgroundColor = rgb(a,b,c)工作?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。