Flotr2のクリック処理周りを使ってみた
Web上でのグラフをやってみたいと思い、Flotr2を使ってみることにしました。
式を描画するだけだとexampleと同じなので、折角ならスワイプで式を上下左右に動かせると良いなと思い、クリック周りを調べて見ることにしました。
Flotr2では、クリック処理は以下のように書くと実装できました。
Flotr.EventAdapter.observe(container, 'flotr:click', function(position) { //クリック処理 alert("X:"+position.x+" Y:"+position.y); });
Flotr.EventAdapter.observe関数の第二引数『'flotr:click'』がクリックであることを指している部分です。
ただ私が使いたいのはクリックではなくスワイプの処理なので、『click』ではなく『mouseup』や『mousedown』、『mousemove』です。
探してみると以下のような形で、『mousedown』がありました。
Flotr.EventAdapter.observe(container, 'flotr:mousedown', function(event) { //mousedown処理 });
第三引数のfunctionの中がeventでpositionではないのです。(eventの中はしっかり見ていないので、まだ分かりません)
positionではないということでpositionの入手は出来ませんでした、『mousedown』と『mousemove』を見てみると『mousemove』はpositionが取得できました。
そのため、『mousedown』と『mouseup』のタイミングで『mousemove』の座標を保存することで、スワイプを実装しました。
第二引数と第三引数の対応を表にします。
第二引数 | 第三引数 |
---|---|
flotr:click | function(position) |
flotr:mousedown | function(event) |
flotr:mouseup | function(event) |
flotr:mousemove | function(e,position) |
このような関係になっていました。