我有一个我正在研究的AJAX聊天系统,到目前为止我已经开始工作了。我想做的一件事就是拥有它,所以当用户名显示在屏幕上时,它是一种独特的颜色(就像在AIM窗口中一样)。如何生成随机颜色以分配给他们登录的特定会话的用户名?
颜色必须是在白色背景上更暗的颜色,并且当它们生成时,它们不能与其他当前用户分配的颜色太相似。
编辑谢谢,我想预定义列表是最简单的方法。如果我在配置文件中有此列表并在用户登录时指定颜色,那么我该如何确保没有两个登录用户具有相同的颜色?
答案 0 :(得分:7)
我认为你最好随机选择符合你要求的预生成颜色列表(足够深,彼此不同),而不是试图动态生成颜色。
已编辑添加:
至于让不止一个用户拥有相同的颜色,我见过系统做的一件事就是使用Javascript在用户机器上本地分配颜色。通常,不同的用户看到其他人的相同颜色并不重要。我不关心屏幕上的颜色是否与其他用户屏幕上的颜色相同,只要屏幕上的所有颜色都是唯一的。实际上,每个用户自己的文本可能是不同的(例如,它们是黑色的,其他人的颜色都是彩色的)。
答案 1 :(得分:1)
创建一个颜色列表(手动),它们足够黑暗且易于区分,然后随机选择一个。
答案 2 :(得分:1)
如果您还希望它们彼此对比并且处于白色的黑暗面,您不希望对颜色过于随意。
最好定义一个颜色数组,并从随机起始位置循环它们,这样就不会重复任何颜色,直到分配了整个颜色。