onclickで自分自身の画像を変更する

このQ&Aのポイント
  • メニュー欄を画像にて表示し、画像クリックにて対象ページに飛ぶようになっています。
  • メニューをクリックした時、クリックした自身の画像を別画像に入れ替えて表示させようとしています。
  • 1日以上試行錯誤していますが、どうにもうまくいきません。
回答を見る
  • ベストアンサー

onclickで自分自身の画像を変更する

メニュー欄を画像にて表示し、画像クリックにて対象ページに飛ぶようになっています。 メニューをクリックした時、クリックした自身の画像を別画像に入れ替えて表示させようとしています。 onClick時に自分自身の画像を入れ替えし、リンク先が表示されるまで入れ替えた画像を表示したいのです。 過去トピックで確認したのですが、回答のリンクが切れてしまっていて、確認できませんでした。 1日以上試行錯誤していますが、どうにもうまくいきません。 どなたかご教示いただけないでしょうか? よろしくお願いします。 IE,Firefox対応希望。 下記コードが現在のところです。 <li><a href="http://www.yahoo.com/" onmouseover="document.spp.src='images/a_rollover.gif'" onclick="document.spp.src='images/a_press.gif'" onmouseout="document.spp.src='images/a_on.gif'"> <img src="images/a_on.gif" name="spp"></a></li>

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>どうにもうまくいきません。 どううまくいかないのか書いてないのでわかりませんが… 想像するところ、クリックで画像が変わってもその後にマウスアウトやマウスオーバーのイベントが発生すると画像が変わってしまうとかでしょうか? もしそうであるなら、ロールオーバーのアクションをクリック後は止めてあげればよろしいかと。 例えば、クリックのフラグを作っておいてそれによってロールオーバーするかしないか判定するとか、あるいは、クリックされたらロールオーバーの設定を外してしまうとか。 まったく違う発想で、画像はクリック後のものにしておいて(最初は非表示)、ロールオーバーはa要素の背景画像を用いてcssで行うとか。 これなら、クリックで画像を表示後にロールオーバーが起こっても、背景なので画像で隠されて見えなくなります。 a要素内が画像だけなら、画像にイベントを設定してしまったほうが、thisが使えるので記述が簡単になるかも… ご参考まで  <a href="http://www.yahoo.com/"> <img src="images/a_on.gif" onmouseover="this.src='images/a_rollover.gif';" onmouseout="this.src='images/a_on.gif';" onclick="this.src='images/a_press.gif'; this.onmouseover=null; this.onmouseout=null;"> </a> でも、タグ内にスクリプトをいろいろと書く記法だと見にくくないですか? もし、ほかにも同様のものがある場合は個々のタグ内に記さないで、sucripタグか外部スクリプトのfunctionなどにまとめてしまうことをお勧めします。

yumiaida
質問者

お礼

fujillinさん、既にご回答いただいたコードの中にロールオーバーの 設定を外すよう書いていただいていたんですね。 コードを書き直し、実行してみたところうまくいきました^^ 一人で考えていたら全く思いつかないことでした。 悩んでいたのが、うそのようです。本当にありがとうございました。

yumiaida
質問者

補足

どううまくいかないのか書いてないのでわかりませんが…  >言葉足らずで申し訳ありません。クリックしてもクリック時の画像が表示されず  マウスオーバーの画像のままのように見えます。 fujillinさんのおっしゃっている、クリック後にマウスオーバーの イベントが発生しているのかもしれません。。。  >クリックのフラグを作っておいてそれによってロールオーバーするかしないか判定するとか、あるい は、クリックされたらロールオーバーの設定を外してしまうとか 大変申し訳ないのですが、上記のコードの書き方後教示いただけないでしょうか? お忙しいところ申し訳ありません。

関連するQ&A

  • クリックした自身の画像を別画像に入れ替えて表示

    前回質問したときに、解決したと思いましたが、動きがおかしいので 再質問します。 メニュー欄を画像にて表示し、画像クリックにて対象ページに飛ぶようになっています。 メニューをクリックした時、クリックした自身の画像を別画像に入れ替えて表示させようとしています。 onClick時に自分自身の画像を入れ替えし、リンク先が表示されるまで入れ替えた画像を表示したいのです。 下記のコードだと、クリック時、a_press.gif'は表示されず 何も表示されていない状態(背景画像)が見えてしまいます。 a_press.gif'<a href="http://www.yahoo.com/"> <img src="images/a_on.gif" onmouseover="this.src='images/a_rollover.gif';" onmouseout="this.src='images/a_on.gif';" onclick="this.src='images/a_press.gif'; this.onmouseover=null; this.onmouseout=null;"> </a> どなたかご教示いただけないでしょうか? よろしくお願いします。 IE,Firefox対応希望。

  • 画像のハイパーリンクでのonClick

    何度もすみません。 <a href="test.html" target="frame2" onclick="func(this)"><img src="on.gif" border=0 name="images0" onclick="fncChangeBar(0)"></a><br> ハイパーリンクにも画像にもクリックイベントを書いた場合、どちらから実行されるのでしょう? 同時ですか? 優先させたい場合はどのように書いたらよいのでしょう?

  • 折り畳みメニューを使った場合の画像の空きについて

    使用ソフトはドリームウィーバーです。 折り畳みメニューを使いたく、以下のとおり書いたのですが、 なぜか、サブメニューの画像が開いたときに微妙に空きがでます。 マージン0にしてあるのですが、どうしても画像と画像の間があいてしまいます。 どうやったら詰められるのでしょうか? 教えていただけますか? <script language="JavaScript"> <!-- function msl(idmn){ if(document.getElementById) document.getElementById(idmn).style.display='block' else if(document.all)document.all(idmn).style.display='block' } function kks(idmn){ if(document.getElementById) document.getElementById(idmn).style.display='none' else if(document.all)document.all(idmn).style.display='none' } //--> </script> <style type="text/css"> <!-- .menu{ width : 110px; cursor : pointer; } .sub{ display : none; margin: 0px; padding: 0px; } ul{ margin:0px; padding: 0px; } ul li{ margin:0px; list-style-type: none; padding: 0px; height: 22px; width: 110px; } ul li img{ margin:0px; padding: 0px; } --> </style> </head> <body> <noscript>※JavaScriptを有効にしてご覧下さい。</noscript> <div class="menu" onclick="javascript:msl('sub_a')" ondblclick="javascript:kks('sub_a')"><img src="シモン/html/images/menu01.gif" /></div> <ul class="sub" id="sub_a"> <li><img src="シモン/html/images/menu01_01.gif" /></li> <li><img src="シモン/html/images/menu01_02.gif" /></li> <li><img src="シモン/html/images/menu01_03.gif" /></li> <li><img src="シモン/html/images/menu01_04.gif" /></li> <li><img src="シモン/html/images/menu01_05.gif" /></li> </ul>

  • onClickで2回目のクリックでもとの画像に戻す

    いつもお世話になっております。 JavaScriptで質問があり、投稿させていただきます! JavaScriptでサイドメニューを作成しています。 折りたたみにしていて、大メニューをクリックで小メニューを開くようにしています。 大メニューは画像で作成し、小メニューはテキストなのですが、 大メニューをクリックし、小メニューが開いたときに、大メニューの画像を変更。 大メニューをクリックし、小メニューを閉じたときに、大メニューの画像を元に戻す。 としたいのですが、うまくいきません・・・。 スクリプトとHTMLは以下です。 [[JavaScript]] <script type="text/javascript"><!-- function oritatami(id){ obj=(document.all)?document.all(id):((document.getElementById)?document.getElementById(id):null); if(obj) obj.style.display=(obj.style.display=="none")?"block":"none"; } //--></script> [[HTML]] <h2><a href="../sample/index.html" onclick="oritatami('o0');return false"><img src="image/fg.jpg" width="210" height="26" onclick="this.src='image/fg_on.jpg'" onlclick="this.src='image/fg.jpg'"/></a></h2> <div id="o0" style="display:none"> <ul> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> <li><a href="URL">Bible Flight</a> </ul> </div> これでは、1回目のクリックで大メニューの画像は変わるのですが、2回目のクリックでは何もわかりません・・・。 どなたか、ご存知の方、ご教授いただけないでしょうか!! よろしくお願いします!

  • ロールオーバーとOnclickで

    A href="javascript:;"target="_top" onclick="MM_nbGroup('down','group1','~.gif','detail','~.jpg',1)" id="_HPB_ROLLOVER1" onmouseover="HpbImgSwap('_HPB_ROLLOVER1', '~.gif'); HpbImgSwap('_HPB_ROLLOVER2', '~.jpg');" onmouseout="HpbImgSwap('_HPB_ROLLOVER1', '~.gif'); HpbImgSwap('_HPB_ROLLOVER2', '~.jpg');"><IMG src="~.gif" width="51" height="50" border="0" name="_HPB_ROLLOVER1"></A> 上のようにホームページビルダーを使って、ロールオーバーでサムネイルと大きな画像が切り替わるようにしています。 しかしサムネイルをクリックしたら、他のサムネイルをクリックするまで大きい画像が固定される方法がイマイチわかりません。 分かる方いらっしゃいましたら教えて下さい。 あまり詳しくなくて旨く説明できずにすみません。 http://irving.jp/rwr/discography.html のような 感じにしたいんです。

  • 画像メニューの開閉

    JavaScriptで画像メニューの開閉を行いたいのですが、 うまく動きません。 「aaa」が閉じていた場合には「aaa」を開くまではできたのですが、 「bbb」を閉じるという1行を追加したら動かなくなりました。 どなたかご教授願います。 【JavaScript】 function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == '') document.getElementById("aaaSub").innerHTML = '<img src="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; else document.getElementById("aaaSub").innerHTML = ''; } 【HTMLソース】 <ul> <li><a href="#" onClick="showSubmenu01()"><img src="img/menu_aaa.gif" /></a></li> <li><div id="aaaSub"></div></li> <li><div id="bbbSub"><img src="bbb.gif" /></div></li> </ul>

  • 選択された画像を onclick と $_SESSION を使って識別する方法について

    画像が2種類あって、どの画像がクリックされたかを onclick() と $_SESSION[] を使って記録したいと思っているのですが、その方法が分かりません。 以下のスクリプトのようなことをしたいのですが、このスクリプトは動きません。。。($modeには何も値が入りませんでした)。 <a class="1q" id="1a" onclick="<?php $_SESSION['mode']=1 ?>" href="index.php"><img id="image1" alt="Fig1" src="images/fig1.gif"></a> <a class="2q" id="2a" onclick="<?php $_SESSION['mode']=2 ?>" href="index.php"><img id="image1" alt="Fig2" src="images/fig2.gif"></a> MODE=<?=$mode?> よいアイデアを頂けますと大変助かります。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 画像クリックで画像変化を1ページに複数表示

    どのJavaScriptサイトにも記載されていなかったので、こちらでお尋ねします。どなたかご存知だったら、教えてください。 changeImageと<a href=""></a>を使って、クリックして画像を変えるっていうのをやっているのですが、同じページでの複数表示のやり方がわかりません。 それと、2つの画像を変化させて、他のアイコンを作ってそこを押すと元の画像に戻るというのは、可能でしょうか? 4つ画像を用意して、2つまでしか画像変化できないようにさせて、取り消しアイコンで元の画像に戻す・・・ということがやりたいのですが。 今はこんな感じの記述ができています。 <SCRIPT type="text/javascript"> function changeImage() { var imgname = document.images[0].name; if(imgname == "01"){ document.images[0].src = "02.gif"; document.images[0].name = "02"; } else { document.images[0].src = "01.gif"; document.images[0].name = "01"; } } </SCRIPT> </head> <body> <a href="JavaScript:changeImage()"> <img src="01.gif" name"01" border=0></a>

  • ロールオーバー画像の枠線を消したい

    初めてホームページ作成中の超初心者です。 ロールオーバーで、下記のタグで表示させたのですが、画像の枠線が出てしまいました。 普通に<img src="img1.gif">と書くと出ない画像なんですが・・・ リンク画像の枠線を消すのと同じ要領でborder="0"とも書き加えてみましたが、(4ヶ所とも)今度は何も表示されなくなってしまいました。 <問題のタグのひな形> <a href="http://www-------"onmouseover = "document.bt.src = 'img1.gif'" onmouseout = "document.bt.src = 'img2.gif'"onclick = "document.bt.src = 'img3.gif'"><img src = "img2.gif" name="bt"></a> どうぞ宜しくお願いします!

  • サブウィンドウの画像を入れ替える

    初心者です。よろしくお願いします。 親ウィンドウからテキストリンクでサブウィンドウを開きます。 サブウィンドウには、基本的に2種類の画像があります。 親ウィンドウのテキストリンクは3種類(A、B、C)あり、Aのリンクをクリックしたときには、サブウィンドウの <img src="images/x_01.gif" name="sozai01" alt="" width="469" height="142"> <img src="images/x_02.gif" name="sozai02" alt="" width="469" height="142"> の2つの画像をそれぞれ指定する同じ大きさの画像(images/a_01.gifとimages/a_02.gif)に替えたいのですが、どうしたらいいのかさっぱりわかりません。どなたか教えていただけますでしょうか?

専門家に質問してみよう