• ベストアンサー

クリックして変更した画像を他の画像をクリックしたとき戻すには?

複数の同じ画像があるとします。 そのひとつをクリックすると画像が変わるようにします。 その後別の画像をクリックすると先ほどクリックした画像が初期の状態に戻るようにしたいのですが、どのような記述にすればよいのでしょうか? どなたかご教授おねがいします。 できるだけリンクタグは使わないようにしたいです。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

いろいろやりかたありそうですが たとえば、グルーピングにclassをつかってこんな感じで <script> function change(obj){ var orgimg="a.gif"; var newimg="b.gif"; var imgs=document.getElementsByTagName('img') for(var i=0;i<imgs.length;i++){ if(imgs[i].className==obj.className){ if(imgs[i]==obj) imgs[i].src=newimg; else imgs[i].src=orgimg; } } } </script> <img src="a.gif" class="hoge" onClick="change(this)"> <img src="a.gif" class="hoge" onClick="change(this)"> <img src="a.gif" class="hoge" onClick="change(this)">

vect-61
質問者

お礼

自分の思い通りにうまくいきました。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#176215
noname#176215
回答No.2

クリックした時点で 全部の画像を元の画像に戻して その後でクリック した画像だけ 別画像に変更してやればいいんじゃないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クリックして変更した画像を他の画像をクリックしたとき戻すには?

    以前、別で下記のような質問がありました。 ●質問------------------- 複数の同じ画像があるとします。 そのひとつをクリックすると画像が変わるようにします。 その後別の画像をクリックすると先ほどクリックした画像が初期の状態に戻るようにしたいのですが、どのような記述にすればよいのでしょうか? どなたかご教授おねがいします。 ---------------------- 上記の質問を受けての回答が下記のような感じで ●回答------------------- <script> function change(obj){ var orgimg="a.gif"; var newimg="b.gif"; var imgs=document.getElementsByTagName('img') for(var i=0;i<imgs.length;i++){ if(imgs[i].className==obj.className){ if(imgs[i]==obj) imgs[i].src=newimg; else imgs[i].src=orgimg; } } } </script> <img src="a.gif" class="hoge" onClick="change(this)"> <img src="a.gif" class="hoge" onClick="change(this)"> <img src="a.gif" class="hoge" onClick="change(this)"> ---------------------- これで終わってしまっていたのですが、画像が複数のパターンある場合はどのようにすればよいでしょうか。 例えば 「a1.gif」をクリックすると「a2.gif」に変更するようにして、さらに「b1.gif」というものがあって、クリックすると「b2.gif」に変更するように設定してあるとします。 「a1.gif」をクリックして「a2.gif」になっている状態で「b1.gif」をクリックすると「a2.gif」が「a1.gif」に戻るようにするにはどのようにすればよいでしょうか。 このb1が、c1,d1,e1・・・・とたくさんある感じです。 質問の内容がわかりづりかもしれませんが、どなたかご教示いただけると幸甚です。 宜しくお願い申し上げます。

  • FC2ブログの画像挿入について

    現在2つFC2でブログを書いています。 それぞれ別のテンプレートを使用しているのですが、ちょっと困ってます。 記事投稿画面の画像挿入ボタン→ファイルのアップロード画面→「この画像で記事を書く」ボタン→記事投稿画面 この順に遷移して画像が挿入されるんですが、 片方は画像をクリックすると別ウィンドウで画像を開く、リンクタグが埋め込まれ、 もう片方は単純にimgタグが埋め込まれます。(クリックしても何もない状態) どちらもリンクタグにしたいんですが、可能でしょうか。 また、可能な場合、どこを直せばいいでしょうか? よろしくお願いします。

  • クリックによる画像変換

    現在javaでプログラムが実行されると初期画像を表示し、フレーム内をクリックをするとクリックした場所に対応した画像に変わるプログラムを作っています。現在初期画像を表示させ、クリックした場所を判断させるところまではうまくできましたが、クリックをしてもプログラムは正しく実行しているにもかかわらず画像が変わりません。どのようにすれば画像が変わるのでしょうか?

  • 画像をクリックしないで、きれいに大きく表示する方法

    ブログに画像を貼り付けることができたのですが。クリックしなければ画像が大きくなりません。また、クリックしない状態の画像、ただブログをスクロールしたときに表示される画像ですが。大きく表示することができたのですが。どうやったら、画質を落とさないで、クリックしなくても大きく画像をのせることができるのでしょうか、 クリックをして画像を表示させる方法というのは、ブログに張ってある画像から、別のサーバーというのでしょうか、別の所に保管してある画像データを読み出して表示させていると思うのですが。

  • 画像クリックで別の画像

    ある画像をクリックすると別の画像に変わって、もう一度クリックすると最初の画像に戻る、みたいな事って出来ますか?スタイルシートやJavaScript使ってでも良いですので、あれば、ぜひ教えてください。

    • ベストアンサー
    • HTML
  • [アメブロ]クリックできない画像の貼り付け方・・・教えて。

    通常、アメブロの画像はクリックすると、別ウィンドウで画像のみ表示されるのですが、 他の方のアメブロを見ていると、たまーにクリックできない画像があります。(説明がわかり難いのですが、つまり、クリックしても別ウインドウが開かない) 因みに、画像の上で右クリックして「名前を付けて画像を保存」等はできます。 *芸能人ブログではなく、一般の方のブログで見かけます どうやったら、こういう貼り付け方ができるのでしょう・・???

  • 画像をクリックして別の画像を表示させたい

    現在HPで親ページから、サブウインドウで画像を表示させるアルバムを作っています。 そのサブウインドウをクリックすると別の画像を表示させたいと思い、下記のように記述したのですが、画像がまったく変わりません。 (下記のページはalbum01です。クリックしたら album02を表示させたいと思っています。) ----------------------------------------------- HEAD部に記述 <script language="JavaScript"> <!--num=0; function change() {num++; num %= 5; document.myIMG.src = "../img/album02.jpg"; } // --></script> BODY部に記述 <body> <table width="300" border="0" cellspacing="2" cellpadding="0"> <tr> <td> <a href="javaScript:change()"> <img src="../img/album01.jpg"name="album01"border="0"></a></td> </tr> <tr> <td> <div align="center">□画像をクリックすると、次の画像も見られます□</div> </td> </tr> </table> <div align="center"></div> </body> -------------------------------------------- 写真は全部で5枚です。今後増やしていきたいと思っています。 javascriptのことはわからないので、どこがどう間違っているのかわかりません。 表示されるようにするにはどのようにしたらいいですか? 使用OSはWin98、ブラウザはIE6.0です。 よろしくお願いします。

  • colorbox.js 画像クリックで閉じる

    colorbox.jsを使用して、画像を拡大表示させたあと、 画像以外の部分をクリックしたときにウィンドウが閉じるのと同じように、 画像事体のどこをクリックしても、ウィンドウが閉じるようにしたいのですが、 どのようにすればよいでしょうか? 現在は画像全体に閉じるイベントを設定したHTMLファイルを別に作成し、 colorbox.jsでiframeとしてポップアップさせているのですが、 画像ごとにHTMLファイルを作成しなくても、可能な方法がございましたら、 ぜひご教授して頂けますようよろしくお願いいたします。

  • active状態のリンクのみを他の画像に置き換える方法

    いつもお世話になっております。 下記のjsの記述で、リンクをクリックするとcssで指定した画像になるようにし、他の範囲内のリンクをクリックしない限りその画像のまま、という状態にしています。(ul id="jmenu"という形で指定しています) 今回は、 <h1>link</h1> <ul id="jmenu"> <li><a href="...">(´・ω・`)</li> </ul> <h1>wonder</h1> <iframe src="..."></iframe> <h1>quest</h1> <ul id="jmenu"> <li><a href="...">(´;ω;`)</li> </ul> という形で、(´・ω・`)をクリックした後、 (´;ω;`)クリックで(´・ω・`)をクリックしている状態を クリアにしたい、と考えているのですが、どのような記述が足りないのでしょうか? 現在ですと、(´・ω・`)がクリアされないため、 (´・ω・`)(´;ω;`)ともにクリックされている状態 (画像が変わっている状態)になってしまっています。 ご教授いただけますと、幸いです。よろしくお願いします。 window.onload=function(){ setColor(); } function setColor(){ var menu=document.getElementById("jmenu"); var tags=menu.getElementsByTagName("a"); for (var i=0;i<tags.length;i++){ tags[i].onclick=function(){ var pp=this.parentNode.parentNode; var tags=pp.getElementsByTagName("a"); for (var i=0;i<tags.length;i++){ tags[i].className=""; } this.className="foge"; } } }

  • サムネイルクリックで、画像をチェンジさせたい

    初心者です。よろしくお願いします。 いくつか並んだ小さなサムネイル画像をクリックすることで、少し離れた大きめ画像をそれぞれのサムネイル画像の拡大に変えたいです。 下記のページの答えを参考にしてやってみました。http://oshiete1.goo.ne.jp/qa1192554.html その時は上手にできました。 ただ、それが同一ページの中に画像違いで、下にあと2つ必要なのです。 原理は同じかと思い、上手にできたものをコピーペーストしてあとの2つを作りました。 しかし、あとで作った2つの画像群の中、サムネイルをクリックすると画像が切り替わって欲しい所ではなく、別のセクションのほうの画像が切り替わってしまいます。 どうすれば思った場所の画像を切り替えられますでしょうか? もしくは、同一ページ内で3枚という複数にターゲット画像を分けることはムリなんでしょうか? 文章が解りづらくて申し訳ございません。

    • ベストアンサー
    • HTML