jQueryで以下のようにすると、マウス位置を取得できて便利でした。
(http://api.jquery.com/mousemove/ 参照)
$(function(){
$("#canvas").mousemove(function(e){
X=e.clientX;
Y=e.clientY;
});
});
ラファエル上で取得した位置をグローバル変数で受け取り、以下のように使うと、動的に地図の場所名などが表示できて便利です。
$("#"+state).css({display:"block",left:X,top:Y});
ラファエルの地図と同時に使っています。
2010年6月12日土曜日
Raphaelでクリッカブルマップ、やっと実装。
Raphaelで地図をクリッカブルにしようと思い、IE対策で苦労していた。
最終的に以下のフォーラム投稿が参考になったので、メモ。
http://groups.google.com/group/raphaeljs/browse_thread/thread/b2f6afcb16d06bbd/a2a1d338301f26c2?lnk=gst&q=map#a2a1d338301f26c2
(要するに、IEにおいては、attachEventしてのonclickやjQueryのclickでは、(on)mouseover ,mouseoutなどと並列処理ができなかったため、onmousedownかonmouseupにした、というわけです。)
最終的に以下のフォーラム投稿が参考になったので、メモ。
http://groups.google.com/group/raphaeljs/browse_thread/thread/b2f6afcb16d06bbd/a2a1d338301f26c2?lnk=gst&q=map#a2a1d338301f26c2
st[0].onmouseup = function() {のようにしてonmouseupで処理し、その中に実行したい関数を書けばOKだった。
alert("");
};
(要するに、IEにおいては、attachEventしてのonclickやjQueryのclickでは、(on)mouseover ,mouseoutなどと並列処理ができなかったため、onmousedownかonmouseupにした、というわけです。)
RaphaelとGoogle map APIの融合ライブラリ(cartgrapher.js)
Raphaelをベースにし、Google map APIを使用して、
エリアごとの人口分布地図や、
ツイッターユーザーの分布などを表示させる、といったことができるライブラリが公開されていた。
http://cartographer.visualmotive.com/
すごい。
エリアごとの人口分布地図や、
ツイッターユーザーの分布などを表示させる、といったことができるライブラリが公開されていた。
http://cartographer.visualmotive.com/
すごい。
2010年6月6日日曜日
RaphaelとjQueryの併用メモ
jQueryとRaphaelを併用したかったので、やり方を探していて、載っていたのでメモ。
http://groups.google.com/group/raphaeljs/browse_thread/thread/5d1afd18d3670d53/ca94967a53dc41c9?lnk=gst&q=jQuery#ca94967a53dc41c9
jQueryのDOM操作で、Raphaelが動かせるのはとてもありがたい。
http://groups.google.com/group/raphaeljs/browse_thread/thread/5d1afd18d3670d53/ca94967a53dc41c9?lnk=gst&q=jQuery#ca94967a53dc41c9
$(window).load(function() {と記述すれば動く、というのでやってみたら動いた。
// put your Raphaël draw code here
});
jQueryのDOM操作で、Raphaelが動かせるのはとてもありがたい。
2010年5月30日日曜日
Raphaelでクリッカブルマップの参考になるサイト。
Raphaelを使ってクリッカブルマップを作ろうと思っていますが、
思っている通りのことを実現しているサイトがあったのでリンクメモです。
http://freejoblistings.ca/
(■追記:jsのソースを見ると、あまりに詳細で難解なので、現時点では無理だと判明。。
すごいな。)
以下のフォーラムで作者の人がクリッカブルなマップについて何か書いてるのでメモ。
http://groups.google.com/group/raphaeljs/browse_thread/thread/8406d083c5dcab65/d59a01dcd3c8130d?lnk=gst&q=freejoblistings#d59a01dcd3c8130d
思っている通りのことを実現しているサイトがあったのでリンクメモです。
http://freejoblistings.ca/
(■追記:jsのソースを見ると、あまりに詳細で難解なので、現時点では無理だと判明。。
すごいな。)
以下のフォーラムで作者の人がクリッカブルなマップについて何か書いてるのでメモ。
http://groups.google.com/group/raphaeljs/browse_thread/thread/8406d083c5dcab65/d59a01dcd3c8130d?lnk=gst&q=freejoblistings#d59a01dcd3c8130d
liveでRaphaelを触って学べるサイト
raphael_liveというページがありました。
コードを書きかえると、すぐその場で実行でき、Raphaelが効率的に学べそうです。
http://craic.com/tutorials/javascript/raphael_live/raphael_live.html
Flashにおけるwonderflみたいな感じですね。
簡易的な。
素晴らしい。
コードを書きかえると、すぐその場で実行でき、Raphaelが効率的に学べそうです。
http://craic.com/tutorials/javascript/raphael_live/raphael_live.html
Flashにおけるwonderflみたいな感じですね。
簡易的な。
素晴らしい。
Raphaelでelementにmethodを適用させる方法メモ。
Raphaelで、あるelementにメソッドを適用する方法のメモです。
というように、elなどで表したものをthisでattrを適用させる、
といったように宣言しておき、
あとは普通にelのところに、オブジェクトを書くだけ。
解説は以下にありました。
http://raphaeljs.com/reference.html#plugins-elements
とあるプラグインのソースの意味が分からないので学習中。。。
Raphael.el.red = function () { this.attr({fill: "#f00"}); };
というように、elなどで表したものをthisでattrを適用させる、
といったように宣言しておき、
paper.circle(100, 100, 20).red();
あとは普通にelのところに、オブジェクトを書くだけ。
解説は以下にありました。
http://raphaeljs.com/reference.html#plugins-elements
とあるプラグインのソースの意味が分からないので学習中。。。
2010年1月28日木曜日
Raphaelでオブジェクトを前面に配置するのはtoFront();
オブジェクトを前面に配置したかったのですが、
toFront();
で実現できると知り、便利でした。
toFront();
で実現できると知り、便利でした。
var c = paper.circle(10, 10, 10);
c.toFront();
みたいな。
http://raphaeljs.com/reference.html#toFront
でも、これを適用してもフロントに行ってくれない問題が起きて、
悩んだら、
既に前のオブジェクトにtoFrontが適用されていました。
そちらをコメントアウトしたらOKに^^
Raphaelで文字サイズを大きく(メモ)
Raphaelで、文字サイズを大きくしたりするのができずに困ってました。
http://raphaeljs.com/reference.html
ドキュメントを見てもよくわからず、attr({font-size:"20px"});とかをつけてもうまくいかず。。
最終的に、
(もちろんopacityはおまけです。二つのフォント指定はひとつにしてもいけました。サイズだけだとダメでした。)
参考にしたのは、Raphaelのこちらのサンプルコードです。
http://raphaeljs.com/text-rotation.html
■追記:
他でfontサイズを指定したとき、
txt.attr("font-size","130");
のような形で("font-size","30");
などのように両方をダブルクオーテーションで囲ってやったらうまくいきました。
http://raphaeljs.com/reference.html
ドキュメントを見てもよくわからず、attr({font-size:"20px"});とかをつけてもうまくいかず。。
最終的に、
var t= paper.text(120, 100, "Test string") .attr({font: '50px Fontin-Sans, Arial', opacity: 0.5});のようにしたら、文字サイズが大きくなりました。
(もちろんopacityはおまけです。二つのフォント指定はひとつにしてもいけました。サイズだけだとダメでした。)
参考にしたのは、Raphaelのこちらのサンプルコードです。
http://raphaeljs.com/text-rotation.html
■追記:
他でfontサイズを指定したとき、
txt.attr("font-size","130");
のような形で("font-size","30");
などのように両方をダブルクオーテーションで囲ってやったらうまくいきました。
登録:
投稿 (Atom)