【发布时间】:2015-05-08 15:06:41
【问题描述】:
我想适应这样的东西:
http://blog.adamcole.ca/2011/11/simple-javascript-rainbow-color.html
但是对于每个新用户都会获得新的最独特颜色的聊天应用程序。
每次用户进入我的聊天应用程序时,我的服务器都会响应一个新的递增数字。 (此代码运行良好)。
所以第一个用户得到一个零,第二个用户得到一个等等。
我想把这个数字与最独特的颜色相匹配。
感谢您的帮助。
下面是链接中的代码
function rainbow(numOfSteps, step) {
// This function generates vibrant, "evenly spaced" colours (i.e. no clustering). This is ideal for creating easily distinguishable vibrant markers in Google Maps and other apps.
// Adam Cole, 2011-Sept-14
// HSV to RBG adapted from: http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript
var r, g, b;
var h = step / numOfSteps;
var i = ~~(h * 6);
var f = h * 6 - i;
var q = 1 - f;
switch(i % 6){
case 0: r = 1, g = f, b = 0; break;
case 1: r = q, g = 1, b = 0; break;
case 2: r = 0, g = 1, b = f; break;
case 3: r = 0, g = q, b = 1; break;
case 4: r = f, g = 0, b = 1; break;
case 5: r = 1, g = 0, b = q; break;
}
var c = "#" + ("00" + (~ ~(r * 255)).toString(16)).slice(-2) + ("00" + (~ ~(g * 255)).toString(16)).slice(-2) + ("00" + (~ ~(b * 255)).toString(16)).slice(-2);
return (c);
}
【问题讨论】:
-
到目前为止您尝试过什么?您要编辑以添加更改的源代码在哪里?我们是否应该猜测您的聊天应用程序是如何实现新源代码的??
-
我已经从链接中添加了代码。我只想要一个接受数字并返回颜色的函数。与现有代码的不同之处在于没有预定义的步数,每个新用户将永远获得一个新的数字。
-
显示的颜色是否绝对需要在应用程序的不同实例之间保持一致?否则,您可以在人们进入聊天时分配随机颜色。
-
我根据@Thriggle 的建议更新了我的答案以使用随机生成。
标签: javascript colors