質問するログイン新規登録
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

745閲覧

クリッカブルマップでセレクトボタンを選択するようにしたい。

Leon-Lionking

総合スコア42

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/03/08 08:39

編集2022/03/08 23:30

0

0

クリッカブルマップでセレクトを選択できるようにしたい。

実装した結果
画像にクリックすると表示ができる。
セレクトボックスを選択すると画像表示ができない。
例)和歌山を選択すると画像に和歌山の地図が出てくる。

実行したい内容

  • <select>を選択してマップの画像の変化を行いたい。
  • マップをクリックしたら<select>も併せて変化を行えるようにしたい。

参考サイト

※CSSは割愛させていただきます。

html

1<select name="number"> 2<option value="選択してください" selected>選択してください</option> 3<option value"奈良">奈良</option> 4<option value"和歌山">和歌山</option> 5~中略~ 6</select> 7 8<figure> 9<img id="kinki-map" src="./img/map.jpg" width="660" height="660" border="0" alt="" usemap="#kinki-map"> 10<map name="kinki-map"> 11<area onmouseover="changeMapImage('./img/nara.jpg')" onmouseout="changeMapImage('./img/kinki-map.jpg')" shape="rect" alt="奈良" coords="429,45,512,72" href="#"> 12<area onmouseover="changeMapImage('./img/wakayama.jpg')" onmouseout="changeMapImage('./img/kinki-map.jpg')" shape="rect" alt="和歌山" coords="500,31,582,46" href="#"> 13~中略~ 14</map> 15</figure>

javascript

1<script type="text/javascript"> 2function changeMapImage(imgPath) { 3 document.getElementById('kink-map').src = imgPath; 4} 5</script> 6<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

どこに参考サイトを探しても出てきません。

ご教示ください。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2022/03/08 09:23

実現したいことは、質問タイトルから クリッカブルマップをクリックするとで<select>の値が相応するものに変わる だけでいいですか? > セレクトボックスを選択すると画像表示ができない。 > 例)和歌山を選択すると画像に和歌山の地図が出てくる。 質問タイトルには入っていませんが、これも実現したいですか?
Leon-Lionking

2022/03/08 23:29

説明不足で済みません。 <select>を選択してマップの画像の変化が欲しいです。 マップをクリックしたら<select>も併せて変化が欲しいです。 説明文に追加しておきました。
int32_t

2022/03/08 23:54

> マップをクリックしたら<select>も併せて変化が欲しいです。 ロールオーバー時ではなくクリック時だけですか?
Leon-Lionking

2022/03/09 00:13

ロールオーバーの時でもありです。 クリック時の変化でロールオーバーの表示を合わせて動かしたいです。
guest

回答1

0

  • <select>を選択してマップの画像の変化を行いたい。

<select>change イベントリスナを登録して、その中では、<select> の値 (event.target.value) を判定して対応する changeMapImage(...) を呼びます。
例:

js

1document.querySelector('select[name="number"]').addEventLisetner( 2 'change', event => { 3 switch (event.target.value) { 4 case '選択してください'; 5 changeMapImage('./img/kinki-map.jpg'); 6 break; 7 case '奈良': 8 changeMapImage(... 9 ...
  • マップをクリックしたら<select>も併せて変化を行えるようにしたい。

引数に合わせて<select>の値を更新して、かつchageMapImage() を呼ぶ関数を作って、<area>onmouseoveronmouseout ではその関数を呼びます。
例:

js

1function changeSelectAndMapImage(imgPath) { 2 if (imgPath.endsWith('kinki-map.jpg')) { 3 // <select> の value を '選択してください' にセット 4 } else if (imgPath.endsWith('nara.jpg')) { 5 // <select> の value を '奈良' にセット 6 } else ... 7 8 changeMapImage(imgPath); 9} 10

投稿2022/03/09 00:40

int32_t

総合スコア21933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Leon-Lionking

2022/03/09 06:44

ご教示ありがとうございます。 > // <select> の value を '選択してください' にセット これは何の引数を渡せばいいでしょうか?
int32_t

2022/03/09 06:55

> これは何の引数を渡せばいいでしょうか? 質問の意図がわかりません。「引数」とは何を指していますか?
Leon-Lionking

2022/03/14 09:20

引数ではなく、関数でした。 javascriptの初心者ですみません。
int32_t

2022/03/15 02:06 編集

document.querySelector('select[name="number"]').value = ''選択してください'; などです。
Leon-Lionking

2022/03/22 02:38 編集

色々試行錯誤しましたが、なかなか反応できませんでした。 教えていただいた2つのスクリプトを埋め込みましたが、クリッカブルマップのイベントもできなくなり、セレクトを選択しても反応しませんでした。
int32_t

2022/03/22 03:10

どこかでミスしているのでしょう。 変更後のコードを見られない以上、もう助言はありません。がんばってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問