我目前正在尝试将 div 的背景直接从红色淡化为绿色。但是我找不到一个很好的过渡,它不会在途中遇到任何不匹配的颜色。我发现的两种方法都使用了 jQuery.Color-plugin,你也可以在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 处传递黄色:
有没有其他方法可以通过漂亮的过渡从红色变为绿色?也许在理论上?