获取两种颜色之间所有颜色的十六进制代码?

时间:2010-08-03 06:28:54

标签: css

我想让按钮从一种颜色切换到另一种颜色。

EG。 1000个按钮,其中第一个是黄色,最后一个是绿色,所有之间将从黄色缓慢移动到绿色。

如何在这两种颜色之间生成颜色的所有十六进制代码(例如#8a3a3a)?

3 个答案:

答案 0 :(得分:2)

将两种输入颜色分成红色,绿色,蓝色组件并将其转换为浮动。从目标组件中减去源组件,将每个组件除以1000并将其称为f.ex. deltaRed,deltaGreen,deltaBlue。从源组件开始,将它们转换为“#rrggbb”字符串1000次,每个循环添加增量。如果要实际达到目标颜色,则必须从0循环到1000,即。 1001次。

答案 1 :(得分:2)

是的,确实如此。您可以按如下方式计算它:

想象一下,颜色是三维空间中的点,每个组件(红色,绿色,蓝色)代表一个维度。根据两种颜色之间所需的色调数量,您可以尝试分别为每个组件均匀分配两种颜色之间的差异。例如,如果rA是颜色A的红色分量,rB是颜色B的红色分量,如果你想要介于其间10步,那么第二步的红色分量是r2 =(rB - rA)* 2 / 10。

首先将组件转换为十进制(例如8a => 138),您应该为计算编写一个小程序。我不认为你需要那么多的音调,因为每个组件只有0到255的范围(需要舍入),而人眼无论如何也无法区分这么多的颜色。

答案 2 :(得分:1)