fancyboxでイメージマップを付ける方法

このQ&Aのポイント
  • fancyboxで表示したイメージ画像に複数のイメージマップを付けたいですが、同じリンク先にしか飛ばない問題が発生しています。どうすれば複数の画像に別々のリンク先を設定することができるでしょうか?
  • fancyboxを使用している場合、イメージマップを設定する方法が必要です。現在の設定では、複数の画像に別々のリンク先を設定することができません。解決策を教えてください。
  • fancyboxで表示されるイメージ画像には、複数のイメージマップを設定したいと考えています。しかし、現在の設定では、同じリンク先にしか飛べません。どのようにすれば複数の画像に別々のリンク先を設定できるでしょうか?
回答を見る
  • ベストアンサー

fancyboxにイメージマップを付けたい

早急に解決しなければいけない問題なのですが、どうしてもわからず途方にくれています。 どなたか助けていただけませんでしょうか。 fancyboxで表示したイメージ画像にイメージマップを付け、リンクを飛ばしたいと思っています。 https://gist.github.com/2972293 上記のサイトを参考にして一時は上手く行ったのですが、 いくつかの画像にそれぞれ個別のリンクを設定しようとしたところ、同じリンク先にしか飛ばない事に気付きました。 #Mapを増やせばいいのかなと思ったのですが(#Map2や#Map3など) 自分で書いても上手くいきませんでした。 どうすれば複数の画像に別々のリンク先を設定するようにできるでしょうか。 ご回答宜しくお願いします。 一応自分で書いたhtmlを載せておきます。 ----------------------------- <script type="text/javascript"> $(function() { $(".fancybox").fancybox({ padding:0, margin:0, onComplete: function() { $('#fancybox-img').attr('usemap', '#Map'); } }); }); </script> <a href="images/test.jpg" class="fancybox"><img src="images/test.jpg" alt="イメージ" width="138" height="111" /></a> <map name="Map" id="Map"> <area shape="rect" coords="317,347,547,364" href="http://yahoo.co.jp/" target="_blank" /></map> <a href="images/test2.jpg" class="fancybox"><img src="images/test2.jpg" alt="イメージ" width="138" height="111" /></a> <map name="Map" id="Map"> <area shape="rect" coords="317,347,547,364" href="http://google.co.jp/" target="_blank" /></map>

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

前の回答にあるソースの<area>にある classを削除してください。それで期待通りの動きになると思います。

gspopo
質問者

お礼

無事に上手く行きました! このたびは本当に助かりました。ありがとうございました!

その他の回答 (1)

回答No.1

クリッカブルマップは、 対象のusemap属性で指定する値と <map>のid属性の値が一致しないと有効になりません。 HTMLにおけるid属性は他と被らない一意なものなので、 MapというIDが複数ある状態だとうまく動きません。 なので<map>タグのIDを被らないようにすべて変更して、 fancyboxを起動する要素(<a>と<area>)に対象になるmapのID情報をつければ、 完了したときに実行されるonCompliteイベントでクリック元に応じたusemap属性が付けられるようになります。 ★IDとname変更、areaのclassにもIDと同じクラスを追加する <map name="map-1" id="map-1"> <area shape="rect" coords="7,8,38,36" href="http://jsrun.it/assets/9/Q/J/1/9QJ1n.jpg" class="fancybox map-1" /> <area shape="rect" coords="41,6,70,35" href="http://jsrun.it/assets/y/z/4/q/yz4qn.jpg" class="fancybox map-1" /> <area shape="rect" coords="75,6,103,35" href="http://jsrun.it/assets/y/2/t/Q/y2tQB.jpg" class="fancybox map-1" /> </map> ★クラス追加 <a href="http://jsrun.it/assets/o/x/g/D/oxgDY.jpg" class="fancybox map-1"> <img src="http://jsrun.it/assets/o/x/g/D/oxgDY.jpg" width="200" /> </a> ★修正したJS $(function() { //fancyboxを起動させる記述 $(".fancybox").fancybox({ padding:0, margin:0, onComplete: function(el) { //クリックされた要素にmap-\dにマッチするclassがあるか判別 var hasMap = $(el).attr('class').match(/map\-\d/i); if(hasMap){ $('#fancybox-img').attr('usemap', '#' + hasMap[0]); } } }); }); https://gist.github.com/3554410

参考URL:
http://jsdo.it/Tenderfeel/8LHi
gspopo
質問者

お礼

(※誤って補足に投稿してしまったので再投稿します) 丁寧に教えていただきありがとうございます! この通りにしてみたところリンク自体は別々に表示する事に成功したのですが、 いざそのリンクをクリックするとURL先に飛ばす、fancyboxの画面内でローディング状態になってしまい動きが止まってしまいます…。 本当に申し訳ないのですが、解決する方法はありませんでしょうか。

gspopo
質問者

補足

丁寧に教えていただきありがとうございます! この通りにしてみたところリンク自体は別々に表示する事に成功したのですが、 いざそのリンクをクリックするとURL先に飛ばす、fancyboxの画面内でローディング状態になってしまい動きが止まってしまいます…。 本当に申し訳ないのですが、解決する方法はありませんでしょうか。

関連するQ&A

  • map初心者です

    名前の付け方がわかりません。 なんでもいいのでしょうか?とりあえずわからないので画像名と同じ名前に設定しました。 また、下の記述が全部なのですが画像しかアップされません。 リンクすらなりません。 どこがおかしいのでしょうか。よろしくお願いします。 <img src="img/1.jpg" usemap="#1map" border="0"> <map name="1map">  <area shape="rect"   coords="220,148,179,200"   href="http://12345" alt="**" target="_blank">  <area shape="rect"   coords="358,125,181,126"   href="http://12345" alt="**" target="_blank">  <area shape="rect"   coords="167,336,178,141"   href="="http://12345" alt="**" target="_blank">  <area shape="rect"   coords="178,338,180,214"   href="="http://12345" alt="**" target="_blank"> </map> 関係あるかわかりませんが、使っているのはロリポップです。

    • ベストアンサー
    • HTML
  • mapが機能しない

    以下のようにmapを設置しましたが、全く機能しません。何が考えられるでしょうか? <div><img src="images/head.jpg" alt="" usemap="#map" border="0"/></div> <map name="map"> <area href="kan.html#3" alt="" shape="rect" coords="0,3,105,154" /> <area href="kan.html#2" alt="" shape="rect" coords="314,3,393,154" /> <area href="kan.html#1" alt="" shape="rect" coords="106,3,211,146" /> </map>

    • ベストアンサー
    • HTML
  • クリッカブルマップのリンクが‥

    クリッカブルマップでリンクさせたくて、記述いたしましたが、リンクが有効になっていません。 ブラウザ上では画像表示のままでハイパーリンクになっておらず、目的のページへ行けない状態です。 これは何が原因でしょうか。 以下、htmlの記述です。みなさま、どうかご教授のほどお願いします。 <img src="./images/menu1.jpg" usemap="#linkmap" border="0" height="81" width="500"> <map name="linkmap"> <area shape="rect" coords="x15,y22,x88,y53" href="$home" alt="ホーム"> <area shape=rect coords="x88,y22,x203,y53" HREF="http://"> <area shape=rect coords="x201,y22,x310,y53" HREF="./index.cgi?mode=top"> <area shape=rect coords="x309,y22,x418,y53" HREF="http://"> </map>

  • 背景画像にクリッカブルマップでリンクを飛ばす方法

    背景画像にクリッカブルマップを使用してリンクを設定したいと思っているのですが 上手く設定できません。 どなたかご教示頂けないでしょうか。そもそも出来ないものでしょうか? ■CSSで書いているのは .bodytitle { background-image: url('http://**************/title.jpg' width="750" height="269" border="0" usemap="#maintop"); } ■HTMLのbodyの中に書いているのは <map name="maintop"> <area shape="rect" coords="12,10,280,80" href="http://******/" target="_blank"> <area shape="rect" coords="510,8,740,71" href="http://******/" target="_blank"> </map> お手間おかけしますがどうぞよろしくお願い致します。

  • マップを使ってページをリンクしさらにページ内リンクにしたが飛ばない。

    マップを使ってページをリンクしさらにページ内リンクにしたが飛ばない。 <img src="images/aaa.jpg" usemap="#map" /> <map name="map"> <area href="kan.html#3" alt="" shape="rect" coords="0,3,105,154" /> </map> kan.html <div align="center" id="3"><img src="images/bar_3.jpg"></div> 以上のようにマップを使ってリンクページの更にページ内リンク先に飛ばそうとしても そのページに飛ぶだけで、飛ばしたい位置まで行きません。 <a name="3"><img src="images/bar_3.jpg"></a> でもダメです。 どうしてでしょうか?

    • ベストアンサー
    • HTML
  • 画像に複数リンクをはる方法(イメージマップ)

    画像は表示されるのですが、リンクがはれません。 どこがおかしいのでしょうか? リンクをはる画像と、リンク先は別フレームで、表示させたいフレームの名前はinです。 ついでに、リンクをクリックした瞬間に出る点線の消し方もわかる方がいたら教えてください。 よろしくお願いします。 タグ(html内)↓ <body> <img src="http:~" usemap="mn"> </body> <map name="mn"> <area shape="rect" coords="298,298,355,262" href="http:~l"target="in"> <area shape="rect" coords="298,276,319,285" href="http:~"target="in"> <area shape="rect" coords="324,273,362,288" href="~html" target="in"> <area shape="rect" coords="367,276,399,286" href="~html" target="in"> </map>

  • IE6でヘッダーとイメージの間に微妙な隙間

    ヘッダーとンイメージはそれぞれdivで囲んでいます。IE6でヘッダーとメインイメージの間に微妙な隙間が隙間が空いてしまいます。FOXでは隙間は空きません。なぜでしょうか? 教えてください。 ==HTML== <div id="header"><img src="images/head.gif" width="821" height="161" border="0" usemap="#Map2" /> <map name="Map2" id="Map2"> <area shape="rect" coords="674,124,775,144" href="#" /><area shape="rect" coords="36,17,322,85" href="#" /> </map></div> <div id="main_img" align="center"><img src="images/main_flash.jpg" width="801" height="305" border="0" /></div> ==css== /*==ヘッダー関係==*/ #header img{ margin:0 0 0 0; padding:0; height:161px; } /*============ボディ部分開始============*/ #main_img{ background:url(../images/main_flash_bg.jpg) no-repeat; width:821px; height:305px; margin:0; padding:0; }

    • ベストアンサー
    • HTML
  • クリッカブルマップがきかない!?

    html初心者です。 地図の画像上に複数のにクリッカブルマップを作成して、同ページ内のアンカーリンクへリンクを設定しています。 ※クリッカブルマップはDreamweaverで作成しています。 IEではちゃんとリンク先に行くのですが、ネスケだと、リンク先に移動しません。。どこが悪いのでしょうか??ソースは下記にある通りです。 なにか決定的にタグが抜けているんでしょうか?? 皆様、初心者な私にどうか教えてください。 よろしくお願いします。。。 ---------------------------------------------- <BODY> <div align="left"> <img src="image/map.gif" width="500" height="300" border="0" usemap="#Map"> <MAP name="Map"> <AREA shape="rect" coords="342,38,447,65" href="#01"> <AREA shape="rect" coords="333,108,439,144" href="#02"> </MAP> </div> <div> <A name="#01">一丁目</A> <A name="#02">二丁目</A> </div> </BODY>

    • ベストアンサー
    • HTML
  • クリッカブル・マップのリンクが効かない

    下記のコードでpngの画像上でリンクをつけましたが、カーソルをかざしても反応が有りません。どこが間違っているのでしょうか? 皆様、ご教授お願いします <table width="750" align="center"> <tbody> <tr><td> <img src="top2.png" usemap="#top2"> <map name="top2"> <area shape="rect" coords="20,197,63,206" href="http://------.html" alt="A"> <area shape="rect" coords="78,198,121,206" href="http://------.html" alt="b"> <area shape="rect" coords="137,198,181,206" href="http://------.html" alt="c"> <area shape="rect" coords="196,198,239,206" href="http://------.html" alt="d"> <area shape="rect" coords="19,163,63,272" href="http://------.html" alt="e"> <area shape="rect" coords="77,264,121,272" href="http://------.html" alt="f"> </map> </td> </tr> </tbody> </table>

    • 締切済み
    • XML
  • イメージマップで文章を表示したい。

    下記の例のように、「map.gif」という画像の各箇所ごとにそれぞれのリンクを貼るのは下記の方法で出来ると思うのですが、 「coords="22,11,122,62"」にマウスが乗ったときに指定した箇所に文章を表示するにはどうしたらよいのでしょうか? ※それぞれの箇所によって、それぞれ違った文章を表示したいです。 ※「map.gif」という画像が表示されている上段(下段でもOK)に枠を作って、その中に説明文が表示される仕組み。 <img src="map.gif" alt="サンプル" usemap="#sample"> <map name="sample"> <area shape="rect" coords="22,11,122,62" href="map1.html" alt="リンク1"> <area shape="circle" coords="184,86,30" href="map2.html" alt="リンク2"> <area shape="poly" coords="87,78,30,110,81,139,69,113" href="map3.html" alt="リンク3"> <area shape="default" href="map4.html" alt="リンク4"> </map> 宜しくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう