RGB 値が分かってて #XXXXXX を計算するのめんどいなーと思って
Firebug でやってみた。
'#' + [76, 84, 105].map(function(i){ return (i >> 4 ? '' : 0) + i.toString(16) }).join('')
このくらいならワンライナーで書けて便利ー^^
追記:
弾さんからトラックバックもらって見てみたけど弾さんはちょっとミスってたので再トラバします。
(function(r,g,b){return '#' + (r < 16 ? 0:'') + (r*65536+g*256+b).toString(16)})(15, 127, 255)http://blog.livedoor.jp/dankogai/archives/50911084.html
これだと
(function(r,g,b){return '#' + (r < 16 ? 0:'') + (r*65536+g*256+b).toString(16)})(0, 1, 1) // #0101
このように r が 0 だとおかしくなりませんか?
という訳で弾さんのを元にした別解
(function(r,g,b){return ((1<<24)+(r<<16)+(g<<8)+b).toString(16).replace(/^1/,'#')})(0, 1, 1)
どうでしょうか
いや、こっちのがいいかな
(function(r,g,b){return ((((1<<8)+r<<8)+g<<8)+b).toString(16).replace(/^1/,'#')})(0, 1, 1)
いやー。時間の無駄遣いだなあ