javascript - 如何使用javascript获得随机颜色(仅限深色)?

标签 javascript

我需要一个仅返回深色的函数。

我可以使用下面的代码获得随机颜色。但如何限制它只获取深色。

document.getElementById('mydiv').style.backgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
div {
  height: 100px;
  width: 100%;
}
<div id="mydiv"></div>

如果不是,我如何在数组中定义一些颜色池并从中获取?

最佳答案

在我看来,更简单的是使用 HSL 颜色系统(色相、饱和度、光)

示例代码:

const mydiv = document.getElementById('mydiv')

document.querySelector('button').onclick=_=>
  {
  let colorH = Math.floor(Math.random() *359)
    , colorS = Math.floor(Math.random() *40) +60
    , colorL = Math.floor(Math.random() *15) +7  // dark colors to adjust
    ;
  mydiv.style.setProperty('--colorBG', `hsl(${colorH}, ${colorS}%, ${colorL}%)`)
  }
#mydiv {
  --colorBG: hsl(0, 100%, 15%);  /* 0..359 */
  display: block;
  height: 100px;
  width:100px;
  background-color: var(--colorBG);
  }
* {margin: 1em;}
<div id="mydiv"> </div>

<button>Random color</button>

关于javascript - 如何使用javascript获得随机颜色(仅限深色)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60732857/

相关文章:

javascript - 为什么这个超时回调没有返回?

javascript - JavaScript 中的 return 是如何工作的

php - 使用 Ajax 加载内容

php - 如果我使用 php 重定向,javascript 警报不起作用?

javascript - 无法读取 null ember 的属性 'id'

javascript - 上传错误信息

javascript - 将 HTML 映射到 JSON

javascript - 如何在减少宽度和高度时停止文本在 div 内更改(灵活填充)

javascript - 如何在计算的可观察量中使用当前对象? -- knockout .js

javascript - 在 DOM 中持久化数据