2つの色のrgb/差を計算し、現在の昼間で増減することができます。最初に、色の解析部分を実行するものが必要です。
var parseColor = function (start, end, now) {
return [
start[0] + now * (end[0] - start[0]) | 0,
start[1] + now * (end[1] - start[1]) | 0,
start[2] + now * (end[2] - start[2]) | 0,
(start[3] && end[3]) ? (start[3] + now * (end[3] - start[3]) | 0) : 1
];
};
それでは、日付の計算と色の解析の周りに非常に単純なラッパーを定義しましょう。
var daytimeColor = function (start, end, date) {
date = date || new Date();
var hour = date.getHours();
var minute = date.getMinutes();
var now = hour * minute / 1440;
var rgba = parseColor(start, end, now);
return 'rgba(' + rgba.join() + ')';
};
最後になりましたが、それを呼び出して、カラー配列を次の場所に渡します。
var start = [255, 0, 0];
var end = [0, 0, 255];
document.body.style.backgroundColor = daytimeColor(start, end);
http://jsfiddle.net/yckart/gyX3K/