javascriptによる画像切り替えについてわからなくて困っています。
初心者ですので説明もわかりにくいかもしれませんが、ぜひご指導をお願いします。
添付画像のように、サイドバーにボタン数個、大きな画像(#main_img)とあって、ボタンにオンマウスで#main_imgが切り替わり、ボタンをクリックするとリンク先に移動できるようにしたいのです。
「javascript ロールオーバー 切り替え クリック リンク」といったキーワードで検索したのですが、ロールオーバー切り替えはできるけれどリンク先に移動できなかったり、ボタン画像画像そのものが切り替わるものだったり、なかなか思ったとおりのサンプルを見つけることができません。
カスタマイズするだけの知識もないので、大変困っています。
このようなサンプルスクリプトを紹介しているところがあったら教えていただけないでしょうか?
No.1
- 回答日時:
ロールオーバーが実現できているならあとはボタンを<a href="hoge.htm"><img src="fuga.jpg"></a>と
リンクすればよいのでは?
この回答への補足
質問した時点で見つけたスクリプトだとa href=""にスクリプトが入っていました。
その後見つけたサイトで解決策を見つけました。
http://www.ziyotoy.net/lab/multi_rollover/#
アドバイスありがとうございました
No.2ベストアンサー
- 回答日時:
・ボタン自体はロールオーバーするのかどうか?
・mainの画像は表示するだけなのか、リンクも効くようにするのか?
(多分、ボタンの画像とは違う画像が表示されるのですよね?)
・マウスアウト時のmain画像はそのままでよいのか?
などがよくわからないので、適当にしています。
とりあえずデータを「通常のボタンのURL」、「マウスオン時のボタンURL」、「mainに表示する画像URL」の3つを1セットにして、ボタンの数だけ。(ご提示の例では5個)
マウスオン、アウトでボタンの画像も変化。
main画像はマウスオンのときだけ入れ替え。
同時にリンク先も入れ替え。
…と言う感じのサンプルです。
(全部バラバラに指定できるようにしているけど、規則性があればもっと簡略化が可能)
<html>
<head><title>test</title>
<style type="text/css">
#navi div { float:left; padding-right:5px; }
#navi a { display:block; }
#navi div a img { width:150px; height:40px; border:0; }
#navi img#main_img { width:400px; height:200px; border:0; }
</style>
<script type="text/javascript">
function test(evt) {
//通常のボタン, マウスオン時のボタン, mainに表示する画像
var data = [
'btn1.gif,btn1_on.gif,A.jpg',
'btn2.gif,btn2_on.gif,B.jpg',
'btn3.gif,btn3_on.gif,C.jpg',
'btn4.gif,btn4_on.gif,D.jpg',
'btn5.gif,btn5_on.gif,E.jpg'
];
var t = evt.target || evt.srcElement;
if (t.nodeName != 'IMG') return;
var img = document.getElementById('navi').getElementsByTagName('DIV')[0].getElementsByTagName('IMG');
var i, idx=-1, d, main = document.getElementById('main_img');
for (i=0; i<img.length; i++) if(img[i]==t) {idx=i; break; }
if (idx > -1 && idx < data.length) {
d = data[idx].split(',');
if (evt.type=='mouseover') {
t.src = d[1];
main.src = d[2];
main.parentNode.href = t.parentNode.href;
} else {
t.src = d[0];
}
}
}
</script>
</head>
<body>
<div id="navi">
<div onmouseover="test(event)" onmouseout="test(event)">
<a href="xx1.html"><img src="btn1.gif" alt="btn1"></a>
<a href="xx2.html"><img src="btn2.gif" alt="btn2"></a>
<a href="xx3.html"><img src="btn3.gif" alt="btn3"></a>
<a href="xx4.html"><img src="btn4.gif" alt="btn4"></a>
<a href="xx5.html"><img src="btn5.gif" alt="btn5"></a>
</div>
<a href="xx1.html">
<img src="A.jpg" alt="main" id="main_img">
</a>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) マイクロソフト2019の本を買ったのですが、本の説明では画面右下に表示モードの切り替えができて閲覧モ 5 2023/02/26 18:16
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- VR・AR YoutubeでVRゴーグル用の切り替えボタンが表示されない? VRゴーグル(中にスマホを入れるタイ 3 2022/10/20 10:27
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- モニター・ディスプレイ Dell G2422HSのディスプレイの入力信号の切替器やリモコンを教えてください 4 2023/05/30 17:56
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- Google Drive GooglePlay開発者サービスの更新方法 1 2022/11/18 10:39
- エアコン・クーラー・冷暖房機 一般家庭 100Vから200V の切り替え方。 10 2022/06/04 09:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPでの画像ファイル表示
-
クリックして変更した画像を他...
-
Excel VBA マクロ 画像(...
-
画面が真っ白になるのはどうして?
-
画像をクリックしたら別ウイン...
-
日替わりで画像を変更したい
-
フォームに入力された値により...
-
ページが開き切る前にブラウザ...
-
NNでロールオーバーしたgifアニ...
-
C言語のポインタ表現
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
jqueryのsortableで一部ソート...
-
removeEventListenerについて
-
Slick.jsのオプションrtlについて
-
JavaScriptで変更した属性の元...
-
どの<li><a> が押されたか判別...
-
複数画像のランダム複数表示(...
-
クリックで色変更後に既に変更...
-
読み込んだQRコードをフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c++std::string型をTCHARに変換...
-
JSPでの画像ファイル表示
-
画面が真っ白になるのはどうして?
-
Javascriptで画像を水面のよう...
-
フォームに入力された値により...
-
クリックして変更した画像を他...
-
日替わりで画像を変更したい
-
クリックするたびに画像を変える
-
C言語のポインタ表現
-
ランダム表示の画像位置
-
【初心者】UWSCでjavascriptで...
-
WSHでクリップボードにイメージ...
-
javascriptで複数の画像をラン...
-
教えて下さい。ランダムにバナ...
-
1つの画像クリックで切替の方法
-
onとoffを画像でチェンジ、チェ...
-
Excel VBA マクロ 画像(...
-
クリックした自身の画像を別画...
-
「戻る」「進む」ボタンで画像...
-
サーバ側で時間を判断して自動...
おすすめ情報