• ベストアンサー

onmouseoverを別の箇所でも反映させたい

知識不足でどうしても解らないので質問させていただきました。 ご存知の方がいらっしゃったら解答していただければ嬉しいです。 テーブル内の画像でonmouseoverで画像を変える構文を入れています。 ただ、そのセルの画像と同時に真下のセルの文字もどうにか変化させたいのです。(背景色でも文字の色でも可) このような動作をさせるのは可能でしょうか? よろしくお願いいたします。

  • HTML
  • 回答数5
  • ありがとう数4

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

  • ベストアンサー
  • olda
  • ベストアンサー率66% (2/3)
回答No.4

<script language="javascript"> <!-- function swapImage(nUrl, nImageId, nMessage, nLabelId) { // ブラウザ判定 if(document.getElementById) { // 画像を入れ替える document.getElementById(nImageId).src = nUrl; // メッセージを入れ替える document.getElementById(nLabelId).innerHTML = nMessage; } } //--> </script> <table> <tr> <td> <img src="1.jpg" onmouseover="swapImage('2.jpg', 'image01', 'マウスオーバー', 'label01')" onmouseout="swapImage('1.jpg', 'image01', 'マウスアウト', 'label01')" id="image01"> </td> </tr> </table> <table> <tr> <td> <span id="label01">メッセージ</span> </td> </tr> </table>

short_leg
質問者

お礼

ソース使わせて頂きました!大変参考になりました。 有難う御座いました!!

short_leg
質問者

補足

// メッセージを入れ替える document.getElementById(nLabelId).innerHTML = nMessage; ここの部分を document.getElementById(nLabelId).style.backgroundColor="#FF0000"; に変えてやってみたのですが、マウスアウトしても 元に戻らなくなってしまいました・・・

その他の回答 (4)

  • N_A_O
  • ベストアンサー率66% (37/56)
回答No.5

下記参照 http://allabout.co.jp/career/javascript/closeup/CU20010415/index3.htm#setFGCOLOR http://game.gr.jp/about/s/part2/q/q02/q02_6.htm http://game.gr.jp/about/s/part2/l/l01/l01_6.htm <script Language="JavaScript"><!-- function myChgPic(myPicURL,myImgTagName){ document.images[myImgTagName].src = myPicURL; } //文字 function setFGCOLOR(layName,color){ if(document.all) //IE4用 document.all(layName).style.color=color else if(document.getElementById) //N6,Moz,IE5,IE6用 document.getElementById(layName).style.color=color } //セル function setBGCOLOR(layName,color){ if(color=='')color='transparent' if(document.getElementById) //N6,Moz,IE5,IE6用 document.getElementById(layName).style.backgroundColor =color else if(document.all) //IE4用 document.all(layName).style.backgroundColor=color else if(document.layers){ //NN4用 if(color=='transparent')color=null document.layers[layName].bgColor=color } } // --></script> <style> <!-- .lays { color : #000000 ; font-size : 18px ; font-weight: bold ; } --> </style> <table> <tr> <td> <a href="#" onmouseover="myChgPic('2.jpg' , 'a');setFGCOLOR('a0','royalblue');setBGCOLOR('a0','yellow')" onmouseout="myChgPic('1.jpg' , 'a');setFGCOLOR('a0','#000000');setBGCOLOR('a0','white')"> <IMG src="1.jpg" name="a" width="20" height="20"> </a> </td> </tr> </table> <table> <tr> <td width="350" heght"100"> <div id="a0" class="lays"> ◆ここにonmouseoverを反映させたい </div> </td> </tr> </table>

short_leg
質問者

お礼

丁寧なソース、どうも有難う御座いました!! 大変参考になりました!

回答No.3

DOM対応ブラウザなら document.getElementById('ID属性値').firstChild.nodeValue="文字" で文字列を変更できるらしいです。(IE6、NN7、Firefoxで確認しました。) これは「はじめてのDOM」さんでわかりやすく解説されています。 IE4以上なら document.all('ID属性値').innertext="文字" でも変更できます。 このあたりは「イヌでもわかるJavaScript講座」さんが得意みたいです。ブラウザ判別要領もサンプルに乗っています。 ユーザーエージェント一覧は下のサイトが参考になります。 http://www.openspc2.org/userAgent/ ご参考になれば幸いです。

short_leg
質問者

お礼

document.ElementByIdを使って出来ました! どうも有難う御座いました!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

参考URLは、適当なIDを付けたタグのテキストを置き換えるサンプルです。 参考になると思います。 一般に document.ElementById(idName).style.color="#FF0000"; で文字色を document.ElementById(idName).style.backgroundColor="#FF0000"; で背景色を変えられます。 また、場合によっては、 あらかじめいくつか文字列を準備しておいて style.display="none" or "inline"; とかして表示・非表示を切り換えるとかの方法もあります

参考URL:
http://okweb.jp/kotaeru.php3?qid=1498191
short_leg
質問者

お礼

document.ElementById でできました。有難う御座いました!!

noname#83116
noname#83116
回答No.1

現在のソースを貼り付けてみてください。

short_leg
質問者

補足

回答有難う御座います。 見づらくて申し訳御座いませんがソースです。 <SCRIPT language="JavaScript"><!-- function myChgPic(myPicURL,myImgTagName){ document.images[myImgTagName].src = myPicURL; } // --></SCRIPT> <table> <tr> <td> <a href="javascript:void(0)" onmouseover="myChgPic('2.jpg' , 'a')" onmouseout="myChgPic('1.jpg' , 'a')"> <IMG src="1.jpg" name="a"> </a> </td> </tr> </table> <table> <tr> <td> ◆ここにonmouseoverを反映させたい </td> </tr> </table> 以上です。 見栄え上、テーブルを分けてしまいました。 先述の内容と異なってしまって申し訳ございません。 何卒よろしくお願いいたします。

関連するQ&A

  • onMouseoverを利用して、セル内の背景色と文字を反転させたい

    テーブルで各セルに別ページへのリンクのリストを作成しています。 onMouseover と onMouseout でマウスが上に来た時に色を変えるようにしたいのですが、背景色の変更は出来ます。 onMouseover="this.style.backgroundColor='#3a5b88'" のようにして。 問題は文字色でして、こちらの変え方が分かりません。スタイルシートでも設定しているので、文字の上にポインタが来ればスタイルシートの指定通りに色を変えられますが、タイトルにも書いたように、onMouseover時には背景色と文字色を反転させるように考えているので、セル内の文字から離れた位置にポインタが来た時には背景色が文字色に変わる(つまり文字色はそのままなので同じ色になる)ので、文字が消えてしまうのです。 なにか良い方法がありましたら教えてください。

  • セルのサイズ指定が反映されないのですが・・・

    テーブルを使用したページを作成していたのですが、 そのテーブル内に、2つの画像とその間に文字を入れるセルを作った所、 セルの横幅にはまだ余裕があるにもかかわらず、途中で改行が入ってしまいました。  ___________ │●あい   │       │ │う●     │ ̄ ̄ ̄ ̄│   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 構成として、改行を入れたくなかったので、<style>でnowrapを指定した所 セルの横幅が広くなり、無駄な余白ができてしまいました。それをなくしたくて HTMLやCSSでセルのサイズを指定したのですが、なぜかサイズが変化しません。  ________________ │●あいう●        │       │ │                │ ̄ ̄ ̄ ̄ │   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ なぜそうなるのか、ご存知の方、教えて頂ければ嬉しいです。 よろしくお願いします。

  • 異なるセルに触れる度、テーブル背景画像もそれぞれ変化させる方法

    オンマウスで異なるセルなどの背景を変える方法 http://okwave.jp/qa4890043.html で質問した者です。 その質問で教えて頂いたやり方(※1)を応用して、 異なるセルに触れる度に、テーブル自体の背景もそれぞれ異なる画像に変化させる方法を教えて下さい。 マウスオーバーで変化、マウスアウトで元の背景に戻る、というかたちでお願いします。  * * *  テーブルにaaa.jpgという背景が設定されているとして、 <table><tr> <td>1111</td> ←このセルに触れるとテーブル背景がbbb.jpgに変化。 <td>2222</td> ←このセルに触れるとテーブル背景がccc.jpgに変化。 </tr></table> どのセルでもマウスアウトで元のaaa.jpgに戻る。 (※1) <script> function change(obj){ var p=obj.parentNode; while(p){ if(p.nodeName=="TABLE") break; p=p.parentNode; } p.style.backgroundImage="url(****.jpg)"; } </script> <table> <tbody> <tr> <td onMouseover="change(this)">1111</td> <td>2222</td> <td>3333</td> </tr> </tbody> </table> 私からのレスは明日以降になってしまいますが、宜しくお願いします。

    • ベストアンサー
    • HTML
  • セルに背景を設定したいのですが、やり方が解りませんので、解る方がいまし

    セルに背景を設定したいのですが、やり方が解りませんので、解る方がいましたら教えてください。 具体的には、ドリームウェーバーCS5を使用しています。テーブルを作成し、そのテーブルをいくつかのセルに区切り、そのセルに、予めそのセルと同じ大きさの背景画像を用意しておき、その画像を、指定したセルの背景に使用したいのです。 セルに背景画像を指定し表示させ、その背景画像が設定されたセルには改めて文字を入力したいのです。 因みに、「sozai」フォルダを作成し、そのフォルダ内の「photo1.jpg」を背景画像に指定したいのです。 セルに画像として貼り付けるのではなく、背景としてセルに表示させたいのです。当方、とても困っております。説明文が上手く説明が出来なくてすみません。どなたか、解る方がいましたら教えてください。よろしくお願い致します。

    • ベストアンサー
    • HTML
  • 半透明のtable、画像は透過したくない

    tableの背景を白くして、alphaフィルターで背景画像をtableに半透明で映しています。 一マスの大きなセルに文章や画像を入れたいのですが、中に貼り付ける画像は普通に表示させたいのです。 文字は透過しても良いです。 tableの背景のみを半透明にして画像はちゃんと表示するという方法はありますか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=677303 の質問で見たテーブルを二つ重ねる方法でも、 文字は透過しないのに画像だけ半透明になってしまいます。 どなたか教えて下さいませ。

    • ベストアンサー
    • HTML
  • onMouseOverでリンクを作る方法は?

    onMouseOverを使って、特定のブロックをリンクボタンのように機能させる方法を教えて頂けませんでしょうか。 具体例は、ユニクロさんのショッピングカートです。 ユニクロさんのオンラインストアサイトでは、ほとんどのページでページの右上に小さなショッピングカートサマリーが表示されます。(トップページ以外) 【たとえば、このページ。(リンク先はユニクロさんの特集一覧)】 http://store.uniqlo.com/jp/store/feature/ このショッピングカートサマリーはareaStoreNaviというブロックで、 下層にCartArea01という要素を持ち、その要素内に「ショッピングカート」というテキスト文字で、カートの中身を表示するURLへリンクを貼っています。 このテキスト文字の上に、ショッピングカートサマリーの背景画像が上書き表示され、テキスト文字は通常は表示されません。 そしてショッピングカートサマリーの背景画像やその文字列にはリンクが貼られていません。 上位ブロックであるareaStoreNaviにOnMouseOverで、マウスオーバー時にCartArea01のリンク効果をareaStoreNaviブロックに適用しているのだと思うのですが、実際に自分の環境で記述する方法が分からないのです。 <DIV id=areaStoreNavi onMouseOver="cartArea('1');" onmouseout="cartArea('0');"> <DIV class=Cartarea01><A title=ショッピングカート href="http://store.uniqlo.com/jp/disp/CUCtViewCartLink.jsp">ショッピングカート</A></DIV> <DIV class=Cartarea02> <TABLE cellSpacing=0 cellPadding=0 width=114 border=0> <TBODY> <TR> <TD class=itemNum>0点</TD></TR> <TR> <TD class=itemPrice>¥0</TD></TR></TBODY></TABLE></DIV> どうして"cartArea('1');" なのでしょう? "cartArea01;" や"cartArea1;" でない理由がよく分からないのです。 「それは○○のルールにのっとっているんだよ」ということを教えて頂ければ、嬉しく思います。 皆さまのお力を貸して頂けませんでしょうか。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • リンクと画像に触れると数カ所の画像が替わる

    わかりづらいかもしれませんので、例をあげながら質問いたします。 アルファベットのリンク画像にマウスが触れると、 同じ場所に読みであるカタカナの画像を表示させるためには、 オンマウスのタグを入れてあげればいいんですよね。 ところがもう一つ、別の場所(テーブル)に写真画像も入れ替えて表示させたいのです。 アルファベットのリンク画像がいくつかリストになっていて、 触れると同じ場所に読みの画像が入れ替わって教えてくれると同時に、 別のテーブルに1ケ所だけ写真サイズの画像のスペースがあり、 そこにリストに合わせた写真画像を入れてあげたいのですが。 オンマウスオーバーとオンマウスアウトを2個ずつ入れてあげることになりますが、 連動で数カ所の複数の画像を表示、非表示で入れ替えるのは可能なのでしょうか。 何度組み合わせても、ひとつしか替わらないのです。 別のテーブルにある画像を表示させるのにはHTMLで、 同じ場所にある画像を変化させるのにはリンク画像に触れるJavascriptを使いました。 オンマウスオーバーとオンマウスアウトの記述を 2つ並べて記述するのが間違ってるんだと思うのですが。 連動で同じ箇所と別の箇所に複数の画像を表示させてリストごとに替わる記述法があれば、ぜひ教えてください。 また、リンクに対するオンマウスではなく、 画像に対するオンマウスっていうのはあるんでしょうか。 知識不足で、しかも長文になり申し訳ありません。 お忙しいところ恐縮ですが、よろしくお願いいたします。

  • オンマウスで異なるセルなどの背景を変える方法

    (1)オンマウスで、オンしているセルではないセルの背景画像を変える方法と、 (2)オンマウスで、セルではなく、テーブル自体の背景画像を変える方法を 教えて下さい。 (1) <table><tr> <td>1111</td> ←このセル(文字)にオンマウスして <td>2222</td> <td>3333</td> ←このセルの背景を変える </tr></table> (2) <table background="*****.jpg"><tr> <td>1111</td> ←このセル(文字)にオンマウスしてテーブルの背景を変える <td>2222</td> <td>3333</td> </tr></table> こちらで使用しているブラウザはSafari2.0.4とFireFox3.0.8です。 お願いします。

    • ベストアンサー
    • HTML
  • テーブルの背景。

    テーブルの背景に画像を入れることってできますか? セルにではなく、テーブル全体の背景に入れることができないだろうかと。 で、なおかつ画像の上に文字を配置したいのでと、いう風に考えると、 やっぱり、背景に入れるって方法しかないと。 色の指定ができるわけだから、画像の指定もできそうな気がするんですけど。 あ、字が入ってる画像を作ればいいって回答はやめてください(笑) それだと更新がめんどくさいのでっていうことで質問してますので。 可能な方法がありましたら、教えてください。 タグで書いて頂けるともっと嬉しいです。感涙します。 ではよろしくです。

    • 締切済み
    • CSS
  • ポインタを置いたときの色の変更

     ポインタを置いたときに変化させる際、画像の場合は、 <img src="a.gif" onMouseOver="this.src='b.gif'" onMouseOut="this.src='a.gif'"> とするといいのは知っているのですが、テーブルのセルの色を変更させる方法は無いのでしょうか?  どなたか教えてください。 お願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう