Triangle Color Selector
Sample
// 渡した要素に appendChild される。
var tcs = new TriangleColorSelector(document.getElementById("tcs"));
// 色が変わったら呼び出される。
tcs.addEventListener("change", function (e) {
window.status = e.hex;
});
NULL::colors : これを使ったカラージェネレータ
Description
Painter 風カラーピッカーですよ。コード自体は GIMP の modules/colorsel_triangle.c からパクりました。そんなわけでライセンスが強制 GNU/GPL なのかしら。しらね。某 IRC チャンネルのそれがしさんに感謝。
Gecko だと クリック→ドラッグ が上手くできない。現状では Opera が完璧。IE では動かないです。透過 PNG を DirectX フィルタさせて、addEventListener 系をやってやればいけそうな気がしますが、なんか Math.atan とかが動いてない気がして微妙です。
- Mozilla Firefox 1.0 (開発環境)
- Opera 7.6 preview3
Code
Arthur @ Knettergek Media さんが IE コンパチなバージョンを作ってメールしてくれたので転載。
Usage
addEventListener(situation, callback_func)- イベントコールバック関数を設定する。
- situation
- 起動するタイミング。現在は
changeのみ - callback_func
-
起動するときに呼び出す関数。
rgb,hsv,hexプロパティを持つ引数を一つ渡す。tcs.addEventListener("change", function (e) { e.hex; //=> #ff0000 e.rgb; //=> {r: 255, g : 0, b : 0} e.hsv; //=> {h: 0, s : 100, v : 100} /* * [e.rgb.r, e.rgb.g, e.rgb.b].join(", "); */ });
setColor(h, s, v)- 指定した色にポイントする。h はラジアン。その他は 0 以上 1 以下の値。イベントコールバックの
hsvとは単位が違うので注意。 toHex()- 現在の色を十六進表記で返す。 ex. #ff0000