jquery 使用JavaScript随机获取浅色

xoefb8l8  于 2023-01-25  发布在  jQuery
关注(0)|答案(5)|浏览(261)

下面是我的代码,显示所有类型的颜色,如深蓝色,浅蓝色,深粉红色,浅粉红色等,但我想只得到浅色使用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;
}

我该怎么做?谢谢。

cgyqldqp

cgyqldqp1#

您可以通过切断字符串强制随机数为十六进制的高数字来实现此目的

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;
            }

快速脏路

x4shl7ld

x4shl7ld2#

您也可以使用HSL colors
HSL代表色调、饱和度和亮度,代表颜色的柱坐标表示。
HSL颜色值由以下参数指定:HSL(色调、饱和度、亮度)。
色相是色轮上的度数(从0到360)- 0(或360)是红色,120是绿色,240是蓝色。饱和度是百分比值;0%表示灰色阴影,100%表示全色。亮度也是一个百分比;0%是黑色,100%是白色。

function getRandomColor() {
  color = "hsl(" + Math.random() * 360 + ", 100%, 75%)";
  return color;
}
hi3rlvi2

hi3rlvi23#

一个小小的改进:

function getRandomColor() {
  return 'rgb(' + 
    (Math.floor(Math.random()*56)+200) + ', ' +
    (Math.floor(Math.random()*56)+200) + ', ' +
    (Math.floor(Math.random()*56)+200) +
    ')';
}
yquaqz18

yquaqz184#

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function getRandomColor() {
  return Array.from({length: 3}, ii=>Math.floor(getRandomInt(130, 240)));
}
eeq64g8w

eeq64g8w5#

const generateRandomLightColor = () => {
    const red = Math.floor(Math.random() * 255)
    const green = Math.floor(Math.random() * 255)
    const blue = Math.floor(Math.random() * 255)
    const opacity = 0.5
    return `rgba(${red}, ${green}, ${blue}, ${opacity})`
}

相关问题