Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/nginx/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 彩色选择器_Javascript_Colors_Color Scheme - Fatal编程技术网

Javascript 彩色选择器

Javascript 彩色选择器,javascript,colors,color-scheme,Javascript,Colors,Color Scheme,我正在寻找一种普通的Javascript方法来为块状但连续的颜色光谱选择十六进制或RGB颜色值。该方法应能够指定多个分割/块,并以任何方式返回符合以下条件的颜色: 活力:不要太暗或太亮。我不想在那里有黑人或白人。这些颜色在饱和度上应该相当明亮,但亮度适中。此外,避免灰色也很不错,但这是可选的 连续:每个范围/块的颜色应与过去和未来的颜色大致匹配。颜色应该以某种方式“流动”,而不是相互冲突。颜色不应该重复(这是光谱) 可再现性:如果该方法具有相同的块数,但在不同的时间在不同的机器上运行,则选择的

我正在寻找一种普通的Javascript方法来为块状但连续的颜色光谱选择十六进制或RGB颜色值。该方法应能够指定多个分割/块,并以任何方式返回符合以下条件的颜色:

  • 活力:不要太暗或太亮。我不想在那里有黑人或白人。这些颜色在饱和度上应该相当明亮,但亮度适中。此外,避免灰色也很不错,但这是可选的
  • 连续:每个范围/块的颜色应与过去和未来的颜色大致匹配。颜色应该以某种方式“流动”,而不是相互冲突。颜色不应该重复(这是光谱)
  • 可再现性:如果该方法具有相同的块数,但在不同的时间在不同的机器上运行,则选择的颜色应相同。如果添加更多的分割,颜色只应“移动”,使光谱更平滑,并减少连续颜色之间的差异
这个例子的样式是随机大小的HTML
div
s。我甚至没有这方面的HTML代码


任何帮助或指点都会很棒

这里有一个快速而肮脏的解决方案,我相信它符合您指定的要求。具体而言—

  • 充满活力——我认为是旁观者的眼睛,但它似乎充满活力
  • 连续-通过修改hsla颜色的色调值创建,根据定义,该颜色围绕色轮
  • 可复制-输出将匹配任何JavaScript引擎
colorSpectrum=函数(计数){

if(count)SO可能不是回答此类问题的最佳场所,但作为提示,如果您想要“充满活力”,您可能会希望将它们生成为HSB颜色。有趣的是,我认为这样可能不是最好的地方,但由于我每天都需要这样做数千次,我认为最好是向开发人员群体寻求一种编程方式来实现这一点(这听起来很时髦,但我根本没有打算这么做)。感谢您的提示!尝试查看HSL颜色模型。更具体地说,请查看使用色调(0-360)饱和度(0-100%)亮度(0-100%)Alpha(0-1)指定颜色。例如,灰绿色将是:
hsla(73,100%,50%,1)
@enhzflep我知道
hsl
hsla
在CSS的意义上都可以工作。但我真的需要RGB或hex。正如我在jdpenix的回答中的评论所示,我真的很想用一种简单的JS方式将
hsl
hsla
转换为RGB或hex。一个肮脏的解决办法是设置HTML元素t的颜色并重新阅读,但如果可能的话,我想避免这种情况。在Quilliom提出
hsl
值之前,我没有想到这些值。@fond42518-自己在颜色系统之间转换一点也不难-在web上可以找到不止两种实现-它们比JU实现的时间要长得多不要让浏览器为您转换。您甚至不必有一个永久的屏幕上(即使不可见)元素来进行转换。您只需设置临时元素的样式属性,按您所说的方式将其读回即可。如果已经有一个功能完善的轮子可用,则无需重新创建轮子。;)我需要这个函数来输出RGB或十六进制。有没有简单的方法来转换为RGB?@fond42518没有一个简单的内置解决方案来转换为RGB,但算法实现起来非常简单,这里有一个概述:-如果你想要非常简单,请阅读元素的颜色。我试图避免这种情况,但我猜是这样的e没有太多可以合作的地方。谢谢你的贡献!