• 締切済み

クリックによる画像の入れ替え処理について

HTML、CSS、Javascriptを勉強中の初心者です。 あまり難しいことはわからないので、噛み砕いて説明してくださるとうれしいです。 あるWebページで、画像で作成したボタンA、B、Cが一列に配置されている状態で、以下のような処理をしたいと思っています。 (1)Aがクリックされたら、AをA2に置き換える (2)A2が表示されている状態で、Bをクリックすると、A2はAとなり、BはB2となる 質問内容は以下です。 (1)の処理をonclick処理で実装したところ、クリックした瞬間のみA2となり、カーソルが離れるとAに戻ってしまう。  クリックした状態のままにするには他にどのような処理が必要なのか。 (2)jQuery?でできるような気がするが、サンプルとなるものがなく、書き方がわからない。  (調べても、ほとんどが一つのコンテンツスペースに複数の画像をクリックで切り替えて表示する、というものばかりでした) 上記について、ご回答よろしくお願いします。

みんなの回答

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

じゃこんな感じで処理してみてください <script> var imgs=[ {"img_id":"a_img","org_img":"a.jpg","new_img":"a2.jpg"} ,{"img_id":"b_img","org_img":"b.jpg","new_img":"b2.jpg"} ,{"img_id":"c_img","org_img":"c.jpg","new_img":"c2.jpg"} ]; function imgchange(t){ for(var i=0;i<imgs.length;i++){ var img=document.getElementById(imgs[i]["img_id"]); var oImg=imgs[i]["org_img"]; var nImg=imgs[i]["new_img"]; img.src=(t==img)?nImg:oImg; } } </script> <img src="a.jpg" id="a_img" onclick="imgchange(this)"> <img src="b.jpg" id="b_img" onclick="imgchange(this)"> <img src="c.jpg" id="c_img" onclick="imgchange(this)">

adober
質問者

補足

ご丁寧にありがとうございます。 試してみたのですが、怪しげな挙動をしてしまってます…。 クリック時の処理の他、マウスオーバー時の処理も入れており、それぞれA’、B’、C’という画像を使っています。 上記のスクリプトを実装したところ、クリック時は問題なくA2の画像になったのですが、それと同時にBがB’になりました。 同じようにB(B’で表示されてしまったB)をクリックすると、今度はCがC’に…という具合です。 ちなみに、クリック後にカーソルを外すと、それぞれA、B、Cの元の画像に戻ります。(A2、B2、C2で表示されない) マウスオーバーのスクリプトは、DWで設定できるMM_swapImgRestore、MM_findObj、MM_swapImage、MM_preloadImagesを使っています。 言葉での説明となってしまい、大変わかりづらく、申し訳ございません…。

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

いくつか疑問点 →「画像で作成したボタンA」とはimgタグなのですか? それとも何か別のボタン的な何かなのでしょうか? →A2をクリックしたときにAに戻す必要はありますか? →Cをクリックしたときにも同様の処理が必要ですか?

adober
質問者

補足

説明不足で申し訳ございません。 →「画像で作成したボタンA」とはimgタグなのですか? >imgタグになります。 →A2をクリックしたときにAに戻す必要はありますか? >A2が表示されている状態でA2をクリックした場合は、A2のままである(Aに戻すことはしない)という想定です。 →Cをクリックしたときにも同様の処理が必要ですか? >はい。同じようにCがクリックされたらC2を表示、AとBはそのまま、という風にしたいです。

関連するQ&A

  • 画像で作成したボタンの処理について

    HTML、CSS、Javascriptを勉強中の初心者です。 あまり難しいことはわからないので、噛み砕いて説明してくださるとうれしいです。 あるWebページで、画像で作成したボタンA、B、Cを一列に配置されている状態で、以下のような処理をしたいと思っています。 (1)画像Aがクリックされたら、画像Aを画像A2に置き換える (2)画像A2が表示されている状態で、画像Bをクリックすると、画像A2は画像Aとなり、画像Bは画像B2となる 質問内容は以下です。 (1)の処理をonclick処理で実装したところ、クリックした瞬間のみ画像A2となり、カーソルが離れると画像Aに戻ってしまうが、クリックした状態のままにするには他にどのような処理が必要なのか。 (2)jQuery?でif文でできるような気がするが、サンプルとなるものがなく、書き方がわからない…。 上記について、ご回答よろしくお願いします。

  • 画像処理中にプレグロスバーを表示させたい

    画像処理するプログラムを組んでいるのですが、処理に時間がかかるので、プレグロスバーを表示させたいと考えています。 <?php if($_POST["mode"]){ 画面B ~画像処理~ }else{ 画面A <form method="me.php"> ~実行ボタン~ <input type="hidden" name="mode" value="1"> </form> } 最初は画面Aが表示され、実行ボタンを押すとB画面へ移って画像処理、みたいな流れにしています。 プレグロスバーを実装するのに http://www.html5.jp/library/progress.html こちらのサイトのバーが良いかと思いました。 ところが、実際に画面Bに実装すると画面Aで画像処理を行い、画像処理が終わってから画面Bが表示されるため、まったくプレグロスバーの意味がないものになります。 解決する方法はないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • サムネイルをクリックして背景画像を変える方法を教えてください

    サムネイルをクリックすると背景画像が変化するようにしたいのですが、 以下のソースではうまくいかず、質問に上がらせて頂きました。 まず<head>~</head>に <style type="text/css"> <!-- body{ background-repeat:repeat-x; background-position:top left;} --> </style> と入れて、<body>~</body>に <a href=JavaScript:; onclick="document.body.style.backgroundImage='画像URL'";> <img src="画像URL" title="***" width="200" height="60" border=0 class="pictw"/></a> (class="pictw"はサムネイルに枠線を付ける設定になっています) としたのですが、サムネイルは表示されるのに クリックしても何も変化しません。 他のソースも試したのですが、上一列のみに表示などの 背景画像の位置指定やリピート設定ができるものが見つかりませんでした… (この条件が必須なので…) どうすればいいのかどうか教えてください。よろしくお願いします。

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

    以前、別で下記のような質問がありました。 ●質問------------------- 複数の同じ画像があるとします。 そのひとつをクリックすると画像が変わるようにします。 その後別の画像をクリックすると先ほどクリックした画像が初期の状態に戻るようにしたいのですが、どのような記述にすればよいのでしょうか? どなたかご教授おねがいします。 ---------------------- 上記の質問を受けての回答が下記のような感じで ●回答------------------- <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・・・・とたくさんある感じです。 質問の内容がわかりづりかもしれませんが、どなたかご教示いただけると幸甚です。 宜しくお願い申し上げます。

  • クリックで画像表示、さらに画像の一部をクリックで閉じる

    今、Javascriptを使用したページを立ち上げようと しており、以下のようなことをしたいと思っています。 (1) あるテキスト(または画像)をクリック (2) 説明用の画像が表示 (3) (2)で出た画像内の×マークをクリックすると、   その画像が消える。 イメージとしては、GOOGLEローカルのように、 マーカーをクリックすると、 説明文(画像)が出てきて、 ×を押すと閉じるといった内容です。 Javascriptのonclickとかをうまく使えば…と思うのですが、 ホントに初心者なので、分からないことだらけです。 すいませんが、教えていただけないでしょうか。

  • JavaScriptの画像入れ替えについて

    下記のようなものでサムネイルをクリックすると大きな画面に表示される、みたいなものを作っています。しかし職場のIE6でクリックすると表示されなく大きな画像が消えてしまいます。 ちなみに自宅のIE6で確認したときは大丈夫だったのですが、、、 またサムネイル画像のアンカー部分のjavasscript:void(0);を消すと表示されるようになるのですが、やはりここのvoid0には問題があるのでしょうか?? またサーバーにUPする前オンライン上ではなくPCで確認している時はちゃんと表示できていたました。 あまり詳しくないものでどなたかよろしくお願い致します。 <script type="text/javascript"> <!-- function imgch(url) { document.getElementById("image").src=url; } //--> </script> <style type="text/css"> img { border:none; } </style> </head> <body> <img src="image/2.jpg" width="500" height="500" id="image" /> <a href="javascript:void(0);"><img src="image/2.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> <a href="javascript:void(0);"><img src="image/3.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> <a href="javascript:void(0);"><img src="image/3.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> </body>

  • スワイプ画面でのonclick処理について

    先日、以下のサイトを参考にスワイプ画面を作成しましたが スワイプ画面でボタンをクリックする処理が実装できませんでした。 http://web-dou.com/android/swipe.html ページをA⇔B⇔Cとスワイプで遷移することができ、 Aの画面でAのレイアウトに配置したボタンを押すと ある処理を行うというものです。 以下のコードを3つの上記のスワイプを管理するソースコードに記述したところ、 「NullPointerException」というエラーが発生しました。 m_button = (Button)findViewById(R.id.button01); m_button.setOnClickListener(this); 以前した質問(http://okwave.jp/qa/q8826506.html)で回答していただいた通り、 参考にさせていただいた方法ではOnclick処理は実装できないのでしょうか? もし実装できないのであればスワイプ画面でOnclick処理を行う方法について 教えていただければと思います。 回答よろしくお願いします。

  • ホームページの画像の処理について

    サイトのなかに画像があり、クリックすると大きい画像が現れるという処理のなかで現れた画像にカーソルを持って行くとプラス(+)になりクリックすると、さらに大きな画像が現れるという処理がしてあるサイトがあります。どうすればできるのか、わかりません。処理の名前・分かりやすく解説されているサイト等がありましたら教えていただけませんでしょうか。よろしくお願いいたします。

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

    前回質問したときに、解決したと思いましたが、動きがおかしいので 再質問します。 メニュー欄を画像にて表示し、画像クリックにて対象ページに飛ぶようになっています。 メニューをクリックした時、クリックした自身の画像を別画像に入れ替えて表示させようとしています。 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対応希望。

  • 画像クリックにて自分自身を別画像に入れ替えるには?

    ホームページを作成中なのですが、メニュー欄をそれぞれ画像にて表示し、画像クリックにて対象ページに飛ぶようにしております。 このたび、選択されたメニューを識別できるように、クリックされた画像を別画像に入れ替えて表示させようとしています。 onMouseOverやonMouseOut時に一時的に画像を入れ替えるロールオーバーのサンプルはよく見かけますが、できればロールオーバー的なものではなく、onClick時に自分自身の画像を入れ替えし、別の画像がクリックされるまで、ずっと入れ替えた画像を表示しておきたいのです。 JavaScript、CSSなど方法は問いません。 なお、テキストエディタにて作成しています。 どなたかよきアドバイスをお願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう