ハイライト処理

script.aculo.usのソースでエフェクト処理の勉強中。
基本になりそうなハイライト処理に関して。
script.aculo.usはパッと見わかりづらいのでもう少し簡単に書き直していきたい。


ハイライト処理は#ffffffなどのハイライト色と終了時の色を赤(R)・緑(G)・青(L)の三部分に分け、ハイライト色からそれぞれの色をステップごとに終了時の色に近づけていくことで出来る(・・のかな?)。
処理の際はsetTimeout(func, time)使えばそれっぽくなりそう。

変色処理時には16進数→10進数、表示時には10進数→16進数と三色を適宜変換する必要がある。

// HexaToDec('#ffffff')
function HexaToDec(val) {
  var colors = [];
  colors.push(parseInt(val.substring(1,3), 16));
  colors.push(parseInt(val.substring(3,5), 16));
  colors.push(parseInt(val.substring(5,7), 16));
  return colors;
}

// 引数にはHexaToDecで返る配列を渡す
function DecToHexa(val) {
  var colors = []
  for(var i = 0; i < val.length; i++) {
    var hex = parseInt(val[i]).toString(16);
    if(val[i] < 16) hex = '0' + hex;
    colors.push(hex);
  }
  return colors;
}

とすればcolorは、「'#' + DecToHexa(val).join('')」で表せる。

メインとなるステップ処理は眠いので明日やろう。