マウスオーバーでテーブル表示ができません

このQ&Aのポイント
  • マウスオーバーでテーブル表示ができない問題について質問します。
  • スクリプトを使用してマウスオーバーで画像表示はできるようになりましたが、テーブル表示ができません。
  • テーブルの要素を表示するためのスクリプトの修正方法について教えてください。
回答を見る
  • ベストアンサー

マウスオーバーでテーブル表示

タイトル通りのことがしたくて、以下のようにしてみたのですが、表示されません。 どこがダメなのか教えてください。 (マウスオーバーで画像表示、はできるようになったんですが。。。) <script language="JavaScript"> function table(object,hyoji){ document.[object].style.visibility=hyoji } </script> <img src="onMouseOver('TABLE1','visible');"> <SPAN STYLE="POSITION:ABSOLUTE; TOP:30; LEFT:40; filter: Alpha(opacity=60); visibility='hidden';"> <TABLE CLASS="SETSUMEI" NAME="TABLE1"> <TR><TD CLASS="SETSUMEI">TOPページに<BR>戻ります。</TD></TR></TABLE></SPAN> テーブルって名前つけられたんだっけ…?とかいろいろ不安なところはありますが、 よろしくお願いします。

  • w-inty
  • お礼率72% (1169/1618)

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

  • ベストアンサー
noname#199778
noname#199778
回答No.1

全体的に問題があると思います… ご質問で求めているような動作をより多くのブラウザ上で実現するには、DOMと呼ばれるインターフェイスを使って、解決する必要があると思います。 そのため、イメージを差し替えるJavascriptとは根本的に異なるソースの書き方をする必要があります。 諸々の所を修正したソースを以下に。 <script language="JavaScript"> function showtable(targetId,hyoji){ if (document.getElementById){ document.getElementById(targetId).style.visibility=hyoji; } } </script> <img src="hoge.jpg" onMouseOver="showtable('TABLE1','visible')" onMouseout="showtable('TABLE1','hidden')"> <div id="TABLE1" style="position: absolute; top: 30px; left: 40px; filter: Alpha(opacity=60); visibility: hidden;"> <TABLE CLASS="SETSUMEI"> <TR><TD CLASS="SETSUMEI">TOPページに<BR>戻ります。</TD></TR></TABLE> </div> おそらくこれで目的の動作を確保できると思いますが、いかがでしょうか。 (ソース内容の説明などについては、少々複雑になるので、ここでは割愛します。) 参考になれば。

w-inty
質問者

お礼

回答ありがとうございます。 実は現在つくっているものは、IEの6.0か5.5でしか見ないものなので、比較的インターフェイスにおいては深く考える必要がないページなんです。 ご指摘通りにしてみたら無事できました。 ありがとうございました。

関連するQ&A

  • テーブルの背景をマウスオーバーで変える

    お世話になります よろしくお願いします phpMyAdminをみてやってみようと思ったのですが テーブルのセルをマウスオーバーで背景の変更はできないでしょうか? FireFoxだとうまくいくのにIEだとうまくいきません。 IEは未対応と聞いたのですが 実際phpMyAdminでは動いています。 どうやれば一緒のことができるのでしょうか? phpMyAdminからそれっぽいソースは見つけたのですが うまくいきませんでした <style type="text/css"> /* odd table rows 1,3,5,7,... */ table tr.odd th, table tr.odd { background-color: #CCCCCC; } /* even table rows 2,4,6,8,... */ table tr.even th, table tr.even { background-color: #666666; } /* hovered table rows */ table tr.odd:hover, table tr.even:hover, table tr.odd:hover th, table tr.even:hover th, table tr.hover th, table tr.hover { background-color: #FFF000; } --> </style> <body> <table> <tr class="odd"><td>マウスを乗せると背景色が変わる</td><td>マウスを乗せると背景色が変わる</td></tr> <tr class="even"><td>マウスを乗せると背景色が変わる</td><td>マウスを乗せると背景色が変わる</td></tr> </table> 以上よろしくお願いします

    • ベストアンサー
    • HTML
  • Netscape4でスタイルシートを設定すると、スクリプトが動作しません。

    お世話になっています。 現在、スタイルシートのvisibility属性を利用してリンクをクリックすると、見えなかったテーブルを表示させる、というサンプルを作っています。 しかし、テーブル内にスタイルシートの設定を入れた途端、Netscape4のみ動作しなくなりました。(「#この部分が~」のところです) 原因が分かれば、教えていただきたいと思います。 ソースは次の通りです。 function hyoji(lay){ if(document.getElementById) { document.getElementById(lay).style.visibility = 'visible'; } else if(document.all) { document.all(lay).style.visibility = 'visible'; } else if(document.layers) { document.layers[lay].visibility = 'show'; } } <A HREF="javascript:hyoji('test0')">ZERO</a>  <A HREF="javascript:hyoji('test1')">ONE</a> <A HREF="javascript:hyoji('test2')">TWO</a> <div id = "test0" style="position:absolute; top:100px; left:100px ;visibility:hidden"> <table border=3> <tr> <td bgcolor=teal>ZERO</td> </tr></table></div> <div id = "test1" style="position:absolute; top:200px; left:100px ;visibility : hidden"> <table border=3> <tr><td bgcolor=hotpink> #この部分が問題? <span style="line-height:120%">ONE</font></td> </tr></table></div> <div id = "test2" style="position:absolute; top:150px; left:100px; visibility : hidden"> <table border=3> <tr><td bgcolor=hotpink>TWO</td></tr> </table> </div>

  • マウスオーバー時テーブルの背景色を変えているのですが

    質問させていただきます。 テーブルを作成してマウスオーバーしている行の バックカラーを変えるプログラムを作成しています。 ですが、rowspanを使用すると、rowspanが別の行 扱いになり、バックカラーが変えられなくなってしまいました。 一緒にしたい場合どうしたら良いでしょうか。 もしわかりましたらご教授下さい。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <meta http-equiv="Content-Style-Type" content="text/css"> <script type="text/javascript"><!-- firstcolor="#ffffff"; //初めの色 nextcolor="#eeeeee"; //変更後の色 function table_row(table_id){ tobj=document.getElementById(table_id).tBodies[0]; for (i=0; i<tobj.rows.length;i++){ tobj.rows[i].onmouseover=function(){this.style.backgroundColor=nextcolor}; tobj.rows[i].onmouseout=function(){this.style.backgroundColor=firstcolor}; } }// --></script> </head> <body> <table border=1 id="data_table2"> <thead> <tr> <th>No</th><th>DATA1</th><th>DATA2</th><th>DATA3</th> </tr> </thead> <tbody> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td>No</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td> </tr> <tr> <td rowspan="2">&nbsp;</td><td rowspan="2">&nbsp;</td><td>DATA</td><td>DATA</td> </tr> <tr> <td colspan="2">&nbsp;</td> </tr> <tr> <td>No</td><td>DATA</td><td>DATA</td><td>DATA</td> </tr> </tbody> </table> <script>table_row("data_table2")</script> </body> </html>

  • 外部スタイルシートがテーブル内に効かない

    外部スタイルシートの設定が、テーブル内には効きません。 特に、フォントや行間を効かせたいのですが、どうしたらいいのでしょうか。 以下、大雑把ですが。 #main { float: none; margin-left: 132px; line-height: 1,5em; margin-top : 50px; } #main td, th { line-height: 1,5em; } と外部スタイルシートで指定していて、 <DIV id="main"> <TABLE cellpadding="10" background="image/003-002.gif" style="filter:Alpha(opacity=75);"> <TBODY> <TR> <TD> <H3>内容</H3> </TD> </TR> </TBODY> </TABLE> というようなテーブルを書きました。 テーブルがなければ、スタイルシートは効きます。 初歩的な質問だとは思うのですが、テーブル内に行間などを設定する方法をお願いいたします。

    • ベストアンサー
    • HTML
  • マウスオーバーで複数の画像を切り替える

    こんにちわ、お知恵を拝借させて下さい。 1週間以上探していますが、なかなか答えに結びつきません。 現在下記の内容で<div id="photoAlbum"></div>内の二つの画像の同時切替を行なおうとおもっております。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> <script type="text/javascript" src="main.js"></script> </head> <body> <table width="570"> <tr> <td><div id="photoAlbum"><img src="19.jpg" width="280" height="280"><img src="19pt01.jpg" width="280" height="280"></div></td> </tr> <tr> <td align="center"><img src="19.jpg" width="80" height="80" id="changeButton1">&nbsp;<img src="26.jpg" width="80" height="80" id="changeButton2">&nbsp;<img src="33.jpg" width="80" height="80" id="changeButton3">&nbsp;<img src="40.jpg" width="80" height="80" id="changeButton4">&nbsp;<img src="57.jpg" width="80" height="80" id="changeButton5">&nbsp;<img src="64.jpg" width="80" height="80" id="changeButton6"></td></tr> <tr> <td align="center">&nbsp;</td> </tr> <tr> <td><table width="438" border=0 cellpadding=3 cellspacing=1 bgcolor="#999999" style="FONT-SIZE: 9pt; LINE-HEIGHT: 100%"> <tr bgcolor=#e6e6e6> <td width="30%" nowrap><SPAN style="FONT-SIZE: 8pt">&nbsp;JAN</SPAN></td> <td width="46%" nowrap><SPAN style="FONT-SIZE: 8pt">&nbsp;型番</SPAN></td> <td width="24%" nowrap><SPAN style="FONT-SIZE: 8pt">&nbsp;カラー</SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;19</SPAN></td> <td><SPAN>&nbsp;BK</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton7">ブラック</a></SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;26</SPAN></td> <td><SPAN>&nbsp;GY</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton8">グレー</a></SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;33</SPAN></td> <td><SPAN>&nbsp;NV</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton9">ネイビー</a></SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;40</SPAN></td> <td><SPAN>&nbsp;GR</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton10">グリーン</a></SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;57</SPAN></td> <td><SPAN>&nbsp;OR</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton11">オレンジ</a></SPAN></td> </tr> <tr bgcolor=#ffffff> <td><SPAN>&nbsp;64</SPAN></td> <td><SPAN>&nbsp;RD</SPAN></td> <td><SPAN>&nbsp;<a href="#" id="changeButton12">レッド</a></SPAN></td> </tr> </table></td> </tr> </table> </body> </html> ----------------------------- window.onload = function(){ document.getElementById("changeButton1").onmouseover = function() { album2.change(["19.jpg","19pt01.jpg"]); } document.getElementById("changeButton2").onmouseover = function() { album2.change(["26.jpg","26pt01.jpg"]); } ~中略~ document.getElementById("changeButton12").onmouseover = function() { album3.change(["64.jpg","64pt01.jpg"]); } } var album2 = { change : function(imageArray){ var imgTag = document.getElementById("photoAlbum").getElementsByTagName("img"); for (var i=1; i<imgTag.length; i++){ imgTag[i].src = imageArray[i]; } var album3 = { change : function(imageArray){ var imgTag = document.getElementById("photoAlbum.mainbody").getElementsByTagName("img"); for (var i=1; i<imgTag.length; i++){ imgTag[i].src = imageArray[i]; } } } ---------------------------- 上記内容で試していますが、changeButton7~12が入っているテーブルを削除すると動作するのですが、この状態ではどうしても動作させることができません。 何か、良い方法はないでしょうか

  • table 幅指定でtheadとtbodyがずれる

    bootstrapを使っているのですが、 個別に幅設定がしたいので、htmlに下記を追加しました。 theadは問題なく幅設定できているのですが、tbodyがうまく適用されていないようで theadとずれてしまいます。 theadとtbodyの幅を合わせるにはどのようにすれば良いでしょうか? <style type="text/css"> .scroll1 { width: 1600px; table-layout: fixed; } .scroll1 thead, .scroll1 tbody { float: left; } .scroll1 tbody { height: 350px; overflow-y: scroll; } .c1 { table-layout: fixed;width: 200px; } .c2 { table-layout: fixed;width: 100px; } .c3 { table-layout: fixed;width: 100px; } .c4 { table-layout: fixed;width: 200px; } .c5 { table-layout: fixed;width: 200px; } .c6 { table-layout: fixed;width: 200px; } .c7 { table-layout: fixed;width: 100px; } .c8 { table-layout: fixed;width: 250px; } .c9 { table-layout: fixed;width: 250px; } </style> <table class="table table-bordered table-striped"> <tr> <td> <table border="0" class="table table-bordered table-hover table-striped table-hgroup scroll1"> <thead> <tr style=""> <th class="c1">アクション</th> <th class="c2">店舗コード</th> <th class="c3">ユーザID</th> <th class="c4">ユーザパスワード</th> <th class="c5">ユーザ名</th> <th class="c6">メールアドレス</th> <th class="c7">管理権限</th> <th class="c8">更新日</th> <th class="c9">登録日</th> </tr> </thead> <tbody> <tr style=""> <td style="width:200px;table-layout:fixed"> <input type="submit" value="削除" /> <input type="submit" value="編集" /> </td> <td style="width:100px;table-layout:fixed"> <span >2697</span> </td> <td style="width:100px;table-layout:fixed"> <span >002</span> </td> <td style="width:200px;table-layout:fixed"> <span >000000</span> </td> <td style="width:200px;table-layout:fixed"> <span >大築</span> </td> <td style="width:100px;table-layout:fixed"> <span ></span> </td> <td style="width:100px;table-layout:fixed"> <span >0</span> </td> <td style="width:250px;table-layout:fixed"> <span >2014/11/08 21:20:39</span> </td> <td style="width:250px;table-layout:fixed"> <span >2014/11/08 21:20:48</span> </td> </tr> </tbody> </table> </td> </tr> </table>

    • ベストアンサー
    • CSS
  • tableの大きさが編集領域とブラウザで異なる

    現在、ビルダーにてHPを作成しております。 tableの大きさが編集画面で見るのと、ブラウザ上で見るのでは 大きさが異なってしまいます。 解決方法を教えてください。よろしくお願いします。 <DIV style="width : 157px;height : 607px;top : 72px;left : 2px; position : absolute; z-index : 9; " id="_HPB_LAYOUT_LMV0" class="hpb-side-cell3" align=""> <DIV>   <TABLE cellpadding="0" cellspacing="0" class="hpb-vmenu1" id="_HPB_LINK_MENU_TABLE_01" width="157" height="200" border="1" style="table-layout: fixed;"> <TBODY> <TR> <TD class="hpb-vmenu1-head" height="15"><IMG src="c5.gif" alt="" width="1" height="1" border="0"></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="#" class="hpb-vmenu1-link0"><SPAN style="font-size:11pt">文字</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="sub1.html" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">メニュー</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="sub2.html" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">表</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="sub3.html" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">期間限定</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="sub4.html" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">紹介</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="sub2.html" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">ご注文</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="#" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">ご相談・ご質問</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="#" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">コンセプト</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-idle1" height="50"><STRONG><A href="#" class="hpb-vmenu1-link1"><SPAN style="font-size:11pt">地域</SPAN></A></STRONG></TD> </TR> <TR> <TD class="hpb-vmenu1-foot" height="15"><IMG src="c5.gif" alt="" width="1" height="1" border="0"></TD> </TR> </TBODY> </TABLE> </DIV> </DIV>

  • テーブルのスタイルを効率よく設定するには?

    同じページに複数のテーブルがあり、別のスタイルを適用させたい。 ---- <style TYPE="text/css"> TABLE.A {border-style: solid; } TH.A { color: red; } TD.A { color: blue; } TABLE.B {border-style: double; } TH.B { color: green; } TD.B { color: black; } </style> <table class=A><tr><th class=A>A</th><td class=A>A</td></tr></table> <table class=B><tr><th class=B>B</th><td class=B>B</td></tr></table> --- <table><th><td>タグにclassを書けばいいのですが、もっとすっきりした方法はないでしょうか?

    • ベストアンサー
    • HTML
  • 中のテーブルにまで及ばせないようにする

    テーブルの中にテーブルがあり、 外のテーブルには .table tr .table td でclassを設定しており、 その影響を中のテーブルにまで及ばせないようにすることは可能でしょうか? <table class=css> <tr> <td> <table> <tr> <td> ここに外側のcssの影響を及ばせたくない </td> </tr> </table> </td> </tr> </table>

    • ベストアンサー
    • CSS
  • TABLEのマスの増やし方

    HTMLのテーブル?について教えて下さい。 ******************************************************************************************************************************* <TABLE class=table_a style="WIDTH: 100%"> <TBODY> <TR> <TD class=table_a_th2>左列</TD> <TD class=table_a_td>中列</TD> <TD class=table_a_td>右列</TD></TR> <TR> <TD class=table_a_th2>左列</TD> <TD class=table_a_td>中列</TD> <TD class=table_a_td>右列</TD></TR> <TR> <TD class=table_a_th2>左列</TD> <TD class=table_a_td>中列</TD> <TD class=table_a_td>右列</TD></TR></TBODY></TABLE> ******************************************************************************************************************************* という記載で、縦3列横3列の表が出来るのですが 表の内容(枠組み)を変更する方法が分かりません。 *********************************************************** <TABLE class=table_a style="WIDTH: 100%"> <TBODY> <TR> <TD class=table_a_th2 rowSpan=2>左列</TD> <TD class=table_a_td>中列</TD> <TD class=table_a_td> <P>右列<BR class=first-child>右列</P> <P>右列</P></TD></TR> <TR> <TD class=table_a_td>中列</TD> <TD class=table_a_td>右列</TD></TR> <TR> ************************************************************* 作成したいのはこのようなイメージのもので 中列と右列を増やして行きたいのです。 どなたか詳しいかたご教授下さい。

    • ベストアンサー
    • HTML

専門家に質問してみよう