使用JavaScript随机获取浅色

use*_*762 8 javascript jquery

下面是我的代码,显示所有类型的颜色,如深蓝色,浅蓝色,深粉色,浅粉色等.但我想使用JavaScript只获得浅色.可能吗?

function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?谢谢.

Ali*_*oid 19

你可以通过切断字符串来强制随机变为HEX中的高数字

      function getRandomColor() {
                var letters = 'BCDEF'.split('');
                var color = '#';
                for (var i = 0; i < 6; i++ ) {
                    color += letters[Math.floor(Math.random() * letters.length)];
                }
                return color;
            }
Run Code Online (Sandbox Code Playgroud)

快速脏的方式

  • 我所做的是,我在 RGB 颜色末尾添加了一个额外的“66”,并将其设为 RGBA,这样每种颜色都会自行变亮:-) (2认同)

Kru*_*uga 14

您也可以使用HSL颜色.

HSL代表色调,饱和度和亮度 - 表示颜色的圆柱坐标表示.

HSL颜色值指定为:hsl(色调,饱和度,亮度).

色调是色轮上的度数(从0到360) - 0(或360)是红色,120是绿色,240是蓝色.饱和度是一个百分比值; 0%表示灰色阴影,100%表示全彩色.亮度也是一个百分比; 0%为黑色,100%为白色.

function getRandomColor() {
  color = "hsl(" + Math.random() * 360 + ", 100%, 75%)";
  return color;
}
Run Code Online (Sandbox Code Playgroud)


Nam*_*oel 5

一个小改进:

function getRandomColor() {
  return 'rgb(' + 
    (Math.floor(Math.random()*56)+200) + ', ' +
    (Math.floor(Math.random()*56)+200) + ', ' +
    (Math.floor(Math.random()*56)+200) +
    ')';
}
Run Code Online (Sandbox Code Playgroud)