我目前正试图将div的背景从红色直接淡入绿色。但是我找不到一个不错的转场,在途中没有碰到任何不匹配的颜色。 我发现这两种方法所使用的jQuery.Color-插件,你也可以找到他们JsFiddle:不错,从红色到绿色?
$("#rgb")
.css("background-color", "#ff0000")
.animate({backgroundColor: "#00ff00"});
$("#hsl")
.css("background-color", $.Color({ hue: 0, saturation: 1, lightness: 0.5 }))
.animate({backgroundColor: $.Color({ hue: 120, saturation: 1, lightness: 0.5 })});
第一个使用RGB。 jQuery只是在#ff0000(红色)和#00ff00(绿色)之间进行插值。但是在动画中间的某个地方,颜色会变成暗黄色或棕色,这会干扰整个动画的印象(可能#888800)。
第二个使用HSL 但在这里,动画通过亮黄色的推移,由于色调值从0到120的动画,通过黄色,在60:
有没有其他方法可以从红色变为绿色,并且过渡不错?也许在理论上?
你有没有考虑使其成为2步过渡 - 说,'ff0000' - >'b0b000' - >'00ff00' ?这应该可以让你使“泥泞”的颜色变浅。你也可以考虑增加一点蓝色来使整体变亮......值得注意的是,在红色/绿色之间总是会有一些黄色的阴影,不管它是如此光亮,它几乎都是白色的,如此黑暗,它几乎是黑色的,或者是在中间... – Basic
这确实有点帮助:http://jsfiddle.net/9RUBR/2/ – Andreas