2012-02-25 13 views
0

私は世界地図画像(png画像)を持っています。今では、ニューヨーク、サンフランシスコ、ロンドン、tokya、ムンバイなどのさまざまな都市の地図にマーカーを追加する予定です。 マーカーは赤い点のようになります
私は最終的に何を望んでいるのですか?このマーカーは関連するonclick javascript関数を持っている必要がありますloadstasticschart(cityname).
一度マーカーをクリックすると、その都市の図表は隣接ページ内のdiv。
基本的に私はマップの都市ポイントのjavascript関数onclickを関連付ける方法が欲しいです。この機能をどのように達成できますか?

編集:私は方法は、ユーザのイメージマップにある図と<area>タグを持っており、これらの領域タグのonclickのイベントを持っていた。 areタグには、クリック可能な領域を定義する座標属性があります。残っている最後のものは、今のところ地図には見えないので、色で個々のエリアタグに色を付けることです。 idタグをエリアタグに設定し、document.getElementbyIdによってidの色を設定するように提案した投稿を見ました。スタイルタグが背景色に変わるか、何かが領域を表示しないからです。javascript onclick events on image points

よろしく Priyank

+0

あなたは何をする必要があるのか​​理解しようとしていますか? –

+0

私は、提供された画像から地図上のクリック可能なポイントを持つ画像マップを生成するウェブサイトを見つけました。 –

+0

W3Cによれば、「」要素は[onclickを含む]すべての標準DOMイベントをサポートしているので、クリックハンドラを付けても問題ありません。 –

答えて

2

私は二つの小さな提案を持っているが、一つは画像の上にキャンバスタグをエリアタグと場所を使用して回避し、onclickイベントを描き、それぞれにと関連付ける上に描画するためにPaper.jsを使用することです。古いブラウザではうまくいかないものをお持ちでない場合は、代わりにRaphael.jsをお勧めします。

いずれにしても、地域タグを使用したい場合は、小さなdot.png画像を使用して地域タグの背景として配置し、各国のエリアタグの位置を変更することができます。

.area { 
    background: url("../images/dot.png") no-repeat; 
} 
.area#poland { 
    background-position: 100px 150px; 
} 
.area#argentina { 
    background-position: -100px -300px; 
} 

私はそれが助けてくれることを願っています。

--------------------------- EDIT ------------------ http://jsfiddle.net/8gDLV/1/

HTML::

<!doctype html> 
<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="main.css"> 
    <script type="text/javascript" src="jquery.min.js"></script> 
    <script type="text/javascript" src="main.js"></script> 
    </head> 
    <body> 
    <div id="map-container"> 
     <img src="http://www.theodora.com/maps/new4/world_color.gif"/> 
     <div id="tucuman" class="location"></div> 
     <div id="buenosaires" class="location"></div> 
     <div id="paris" class="location"></div> 
    </div> 
    </body> 
</html> 

があるmain.css:

#map-container { 
    width: 648px; 
    height: 413px; 
    border: 1px solid black; 
    position: relative; 
} 
#map-container .location { 
    position: absolute; 
    width: 10px; 
    height: 10px; 
    border-radius: 5px; 
    background: red; 
    cursor: pointer; 
} 
#map-container .location.active { 
    background: yellow; 
} 
#map-container .location#tucuman { 
    top: 337px; 
    left: 126px; 
} 
#map-container .location#buenosaires { 
    top: 350px; 
    left: 130px; 
} 
#map-container .location#paris { 
    top: 139px; 
    left: 264px; 
} 
-------------

[OK]を、ここでは、実用的なソリューションを持っています

メイン.js:

$(document).ready(function() { 
    $(".location").click(function() { 
    if (!$(this).hasClass(".active")) { 
     $(".location.active").removeClass("active"); 
     $(this).addClass("active") 
    } 
    }); 
}); 

私はそれが正しいと思いますが、今はそれをよりよく説明する時間がありませんが、疑問があればお尋ねください。後で編集します。

乾杯!

+0

ありがとう、私はこれを試してみるつもりです。 –

+0

エリアタグスタイリングはうまくいかないので、paper.js/raphael.jsを使って画像を描く例があるかどうかを知りたいですか? –

+0

ソリューションをありがとう.. –