2012-10-05 70 views
0

我需要实现一个网站(ASP.net MVC制造)的主题化开始。创建颜色调色板从基色

的想法是,在用户选取一种颜色(底色),并从它,我必须生成:

  • 悬停状态的颜色(轻40%)
  • 按压状态的颜色(20%打火机)
  • 颜色较深(20%较暗)

我试图让执行,但我知道这不正常。

如果用户将较亮的颜色,然后悬停状态会变得几乎看不见。

搜索互联网,我发现这个link这似乎正是我要找的,但我无法找到一个真实的例子。

有没有做什么,我想实现的任何项目或例子吗?

回答

2

您可以使用JavaScript客户端做到这一点。

建议的方法:在使用RGB值

  1. 皮克基色。
  2. RGB转换到HSL
  3. 增减HSL亮度RGB转换
  4. HSL转换回RGB
  5. 到CSS兼容的十六进制和你的主题使用。

做你的HSL/RGB转换,您可以使用此:

http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript

这里是您可以修改转换你的RGB值十六进制的例子

How to convert decimal to hex in JavaScript?

这里是W3Schools页面的颜色了。也许不直接关系到你的问题,但可能仍然是有用的

http://www.w3schools.com/cssref/css_colors.asp

1

诀窍是不要让用户选择一个随机的颜色了全RGB空间。相反,让他们只选择通过色调的基本颜色,并设置自己的饱和度和亮度。 Color类本身已经有方法来检索这个值,但缺乏从这些值创建颜色的支持。这可以通过this answer来实现。

通过这种方法,你干脆让用户只选择基本颜色,所以你保证更轻和较暗的颜色是可能的。如何做到这一点的令人印象深刻的方式可以在Color Scheme Designer(你可能已经知道)内看到。他们也只能在第一步中选择色调。

0

尽管以下示例正在运行,但您需要了解颜色的数学运算才能正常工作(如果颜色太亮,太暗,色调和其他颜色)。

我发现了另一种做法,正是我所需要的。这里是link

它将基本颜色与50%不透明度的白色混合,使颜色变浅。