オンマウスでの画像+テキスト表示

このQ&Aのポイント
  • HP作成時にテーブルを左右に分け、マウスオンで画像を拡大表示
  • 画像下にはマウスオン画像に応じたテキストを表示
  • 使いやすいフリーのHP作成ソフトの使用方法がわからない
回答を見る
  • ベストアンサー

オンマウスでの画像+テキスト表示

いつも的確な回答をいただいて、非常に感謝しております。 違うカテで同じような質問をさせていただいたのですが少しやりたいことが変わったので 再度、質問いたしました。 今、HPを作成しているのですがテーブルを左右(左を大きく、右を6つくらい)に分けて 右にはいくつか写真を小さく載せてその右の写真にマウスを乗せると左に大きく表示されるようにしたいのです。 そして、その大きな写真の下にはテキストも載せたいのです (マウスを乗せた写真によって違うテキストを載せる)。 ~こんなかんじ~ │ ̄ ̄│□□□ │__│□□□ テキスト ~~~~~~~~ 検索ではビルダーを使った説明しかありません。 もし、フリーのHP作成ソフト(私が使っているのはalphaEDIT)でのやり方が乗っているサイト 無ければ、ご存知の方に教えていただきたいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • is_may
  • ベストアンサー率65% (58/89)
回答No.3

No.2で説明した方法でいけると思いますが・・。 <script language="javascript"><!-- //1セット目 function xShow(str,exp){ document.getElementById("f").innerHTML="<img src='"+str+"'>"; document.getElementById("label").innerHTML=exp; } function xHide(){ document.getElementById("f").innerHTML=document.getElementById("label").innerHTML="&nbsp;"; } //2セット目 function xShow2(str,exp){ document.getElementById("f2").innerHTML="<img src='"+str+"'>"; document.getElementById("label2").innerHTML=exp; } function xHide2(){ document.getElementById("f2").innerHTML=document.getElementById("label2").innerHTML="&nbsp;"; } --> </script> <table border="1" width="804" height="313"> <tbody> <tr> <td width="40%" align="center"> <div id="f">&nbsp;</div> <div id="label">&nbsp;</div> </td> <td width="20%"><img src="picture1.jpg" onmouseover="xShow('picture1.jpg','A:1枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> <td width="20%"><img src="picture2.jpg" onmouseover="xShow('picture2.jpg','A:2枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> <td width="20%"><img src="picture3.jpg" onmouseover="xShow('picture3.jpg','A:3枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> </tr> </tbody> </table> <table border="1" width="804" height="313"> <tbody> <tr> <td width="40%" align="center"> <div id="f2">&nbsp;</div> <div id="label2">&nbsp;</div> </td> <td width="20%"><img src="picture1.jpg" onmouseover="xShow2('picture1.jpg','B:1枚目の画像です')" onmouseout="xHide2()" width="100" height="100"></td> <td width="20%"><img src="picture2.jpg" onmouseover="xShow2('picture2.jpg','B:2枚目の画像です')" onmouseout="xHide2()" width="100" height="100"></td> <td width="20%"><img src="picture3.jpg" onmouseover="xShow2('picture3.jpg','B:3枚目の画像です')" onmouseout="xHide2()" width="100" height="100"></td> </tr> </tbody> </table> 1セット目のサムネイル画像は <img src="サムネイル画像URL" onmouseover="xShow('拡大画像URL','説明文')" onmouseout="xHide()"> 2セット目のサムネイル画像は <img src="サムネイル画像URL" onmouseover="xShow2('拡大画像URL','説明文')" onmouseout="xHide2()"> このようになっています。また、以下のことも確認してください。 <div id="f">1セット目の拡大画像</div> <div id="label">1セット目の説明文</div> <div id="f2">2セット目の拡大画像</div> <div id="label2">2セット目の説明文</div> がそれぞれ代入されます。

mituru1986
質問者

補足

再度、ありがとうございます。 このソースをコピペして色々操作してからプレビューすると、やはりマウスを離しても消えません。 ご面倒だと思うのですが2つ目のソースをはったのでみてくださいませんか? scriptの記述は間違いないと思うので。。。 色々操作したので元のソースとは変わっています。 <table style="WIDTH: 177px; HEIGHT: 232px" cellspacing="0"cellpadding="0" align="center" border="0"> <tbody> <tr> <td><img height="16" src="sozai/table3/orange/cor17o1.gif" width="16" border="0" ></td> <td><img height="16" src="sozai/table3/orange/cor17o2.gif" width="450" border="0" ></td> <td><img height="16" src="sozai/table3/orange/cor17o1.gif" width="16" border="0" ></td> </tr> <tr> <td><img height="200" src="sozai/table3/orange/cor17o3.gif" width="16" border="0" ></td> <td valign="middle" align="center"><br> <table style="WIDTH: 446px; HEIGHT: 172px"cellspacing="1" cellpadding="1" width="446" align="center"border="0"> <tr> <td align="center" width="200" height="160" rowspan="2"> <div id="f2">&nbsp;</div> <div style="FONT-SIZE: 10pt; COLOR: red"id="label2"></div></td> <td width="80" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps7.jpg','チーズクリームふるーつ')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps7.jpg" width=69 ></p></td> <td width="70" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps8.jpg','デラックスモンブラン')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps8.jpg" width=69 ></p></td> <td width="70" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps9.jpg','さくらんぼのクリームワッフル')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps9.jpg" width=69 ></p></td> </tr> <tr> <td valign="top" align="right" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps10.jpg','フルーツタルト')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps10.jpg" width=69 ></p></td> <td valign="top" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps11.jpg','バニラシフォンケーキ')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps11.jpg" width=69 ></p></td> <td valign="top" height="80"> <p align="right"><img onmouseover="xShow2('jpeg/5cmcake/ps12.jpg','さくらんぼクリームビスケット')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps12.jpg" width=69 ></p></td></tr></table></td> <td><img height="200" src="sozai/table3/orange/cor17o3.gif" width="16" border="0" ></td> </tr> <tr> <td><img height="16" src="sozai/table3/orange/cor17o1.gif" width="16" border="0" ></td> <td><img height="16" src="sozai/table3/orange/cor17o2.gif" width="450" border="0" ></td> <td><img height="16" src="sozai/table3/orange/cor17o1.gif" width="16" border="0" ></td></tr></tbody></table>

その他の回答 (3)

  • is_may
  • ベストアンサー率65% (58/89)
回答No.4

サムネイル画像の呼び出す関数名が異なっています。 <img onmouseover="xShow2('jpeg/5cmcake/ps7.jpg','チーズクリームふるーつ')" onmouseout=xHide() height=51 src="jpeg/5cmcake/s/s_ps7.jpg" width=69> 例えばこの場合、 onmouseover="xShow2('jpeg/5cmcake/ps7.jpg','チーズクリームふるーつ')" で画像にマウスを乗せたとき、「xShow2()」を呼び出して「<div id="f2"></div>」「<div id="label2"></div>」にそれぞれ画像、説明文を表示していますが、マウスを外したときは onmouseout=xHide() で「xHide()」を呼び出しているので「<div id="f"></div>」「<div id="label"></div>」の内容を削除する、というプログラムが実行されるようになっています。ソース内にはこのような記述はありませんのでエラーが発生するわけです。 提示してくださったソース内には代入するフィールドに「<div id="f2"></div>」「<div id="label2"></div>」が使われているようですので、サムネイルの onmouseout=xHide() を onmouseout=xHide2() (<img onmouseover="xShow2('jpeg/5cmcake/ps7.jpg','チーズクリームふるーつ')" onmouseout=xHide2() height=51 src="jpeg/5cmcake/s/s_ps7.jpg" width=69> ) に全て変更すればいけると思います。

  • is_may
  • ベストアンサー率65% (58/89)
回答No.2

同じページに二つ設置する場合は、 <script language="javascript"><!-- //1セット目 function xShow(str,exp){ document.getElementById("f").innerHTML="<img src='"+str+"'>"; document.getElementById("label").innerHTML=exp; } function xHide(){ document.getElementById("f").innerHTML=document.getElementById("label").innerHTML="&nbsp;"; } //2セット目 function xShow2(str,exp){ document.getElementById("f2").innerHTML="<img src='"+str+"'>"; document.getElementById("label2").innerHTML=exp; } function xHide2(){ document.getElementById("f2").innerHTML=document.getElementById("label2").innerHTML="&nbsp;"; } --> </script> <div id="f2">&nbsp;</div> <div id="label2">&nbsp;</div> <img src="picture1.jpg" onmouseover="xShow2('picture1.jpg','一枚目の画像です')" onmouseout="xHide2()" width="100" height="100"> このように共通部分名に「2」をつければ複数配置することも可能ですが、1つにまとめたほうが分かりやすくていいと思います。 テキストの装飾を変更するには、スタイルシートでテキストを代入する<div>を装飾するか、普通に<font>などで囲う方法があります。 1.スタイルシートを使う(直接記述) id="label"の<div>を以下のように変更します。 <div style="font-size:10pt;color:#000000;" id="label"></div> "10pt"、"#000000"の値を好きなように調節してください。 2.スタイルシートを使う(ヘッダー記述) 1.の方法とあまり変わりありませんが、<head></head>間に <style type="text/css"><!-- #label { font-size:10pt; color:#000000; } --> </style> を記述します。 3.装飾タグで囲う 1,2の方法でできなかった場合。 かなり普通な方法ですが、<div>を<font>で囲います。こんなカンジ <font size="1" color="#000000"><div id="label"></div></font> 補足で、 <div id="label"><font size="1" color="#000000"></font></div> このように<div>の中に<font>を配置すると装飾が適応されません。 プログラムを実行すると<div id="label"></div>間の内容が削除されてテキストが代入されるためです。 装飾をするのであれば最初から <font size="1" color="#000000" id="label"></font> このように<font>タグにidを振ってもいいんですけどね。1.の方法に似てますけど・・。

mituru1986
質問者

お礼

何度もわかりやすい回答非常にありがとうございます(^^ 2つ表示したのはいいのですが、1つ目はマウスを乗せると表示され、離すと消えるのですが 2つ目がマウスを離しても消えないのです(マウスを乗せたときに表示された写真のままになってしまう)。 これは改善できるでしょうか?

  • is_may
  • ベストアンサー率65% (58/89)
回答No.1

先ほど回答させていただいた者です。以下のようにすればできます。 <div id="f">&nbsp;</div> にはオンマウスしたときに拡大画像が、 <div id="label">&nbsp;</div> にはオンマウスしたときに説明文がそれぞれ代入されます。 又、サムネイルの書式は <img src="サムネイル画像URL" onmouseover="xShow('拡大画像URL','説明文')" onmouseout="xHide()"> このような感じです。 onmouseout="xHide()"の()には何も入れなくて結構です。 <script language="javascript"><!-- function xShow(str,exp){ document.getElementById("f").innerHTML="<img src='"+str+"'>"; document.getElementById("label").innerHTML=exp; } function xHide(){ document.getElementById("f").innerHTML=document.getElementById("label").innerHTML="&nbsp;"; } --> </script> <table border="1" width="804" height="313"> <tbody> <tr> <td rowspan="2" width="40%" align="center"> <div id="f">&nbsp;</div> <div id="label">&nbsp;</div> </td> <td width="20%"><img src="picture1.jpg" onmouseover="xShow('picture1.jpg','一枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> <td width="20%"><img src="picture2.jpg" onmouseover="xShow('picture2.jpg','二枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> <td width="20%"><img src="picture3.jpg" onmouseover="xShow('picture3.jpg','三枚目の画像です')" onmouseout="xHide()" width="100" height="100"></td> </tr> <tr> <td width="20%"></td> <td width="20%"></td> <td width="20%"></td> </tr> </tbody> </table>

mituru1986
質問者

お礼

再度、回答ありがとうございます。 できました!非常にわかりやすくて感謝です(^^ あと、テキストの色とサイズを変えたいのですがどのような記述をすればよいでしょうか? 何度もスミマセン。。

mituru1986
質問者

補足

すみません。もう1つ質問なのですが、これを同じページに2個以上作る場合、どのようにすればいいのでしょうか?

関連するQ&A

  • オンマウスでの写真表示

    いつも的確な回答をいただいて、非常に感謝しております。 今、HPを作成しているのですがテーブルを左右(左を大きく、右を6つくらい)に分けて 右にはいくつか写真を小さく載せてその右の写真にマウスを乗せると左に大きく表示されるようにしたいのです。 ~こんなかんじ~ │ ̄ ̄│□□□ │__│□□□ ~~~~~~~~ 検索ではビルダーを使った説明しかありません。 もし、フリーのHP作成ソフト(私が使っているのはalphaEDIT)でのやり方が乗っているサイト 無ければ、ご存知の方に教えていただきたいです。 よろしくお願いいたします。

  • マウスオーバーでテキスト表示…

    こんにちは。 HPビルダー6.5 HotmediaでHPを製作中なのですが、以下のことで困っています…助けてください…。 (1)テキストAとテキストBがあるとします。 Bは通常非表示にしておいて、AをマウスオーバーでBを表示させたいのですが…。 この動作、Bをレイアウト枠に書き込んでエフェクトで非表示、Aにイベントを設定すればいい…というのは分かっているのですが、この、テキストBをレイアウト枠ではなくてテーブルに書き込みたいのです。Bをテーブルごと非表示にして、Aをマウスオーバーすると表示させるようにすることって…出来るんでしょうか…? もし可能なら、その方法を教えてください…。 (2)(1)の動作を、AとBが違うフレームにある場合はどう設定したらよいのでしょうか? (3)テキストC、D、E、Fがあるとします。 通常、DとFは非表示にしておき、CをマウスオーバーでD、EをマウスオーバーでFを表示させます。 このとき、DとFを個々に、全く同じ位置に表示させるにはどうしたらよいのでしょうか? 分かりにくい文章で申し訳ありません。 なにか一つでもお分かりでしたらよろしくお願いします。

    • 締切済み
    • CSS
  • テーブルと写真を並べて表示

    HPをHTML(メモ帳)で作っています。 テーブルと写真を並べて(テーブルを左、写真を右に)表示させたいと思っています。 でも、改行も入れていないのにテーブルの下に写真がきて、縦に並んでしまいます。 無知なだけの質問かもしれませんが、どうやったらテーブルと写真を横に並べることができるのか教えてください。

    • ベストアンサー
    • HTML
  • 別フレームのテキストボックスに説明表示

    フレームを使ってHPを作っていますが、 どうにもできないところがあり困っています。 左右に分割していて、 左フレーム name="menu" 右フレーム name="main" で、左フレーム内のリンクをオンマウスすることで、 右フレームのテキストボックス name="readme" に説明文を表示させたいのです。 どなたか教えていただけませんでしょうか?

    • ベストアンサー
    • HTML
  • dreamweaver テーブルセル内へのテキスト入力

    HP作成にあたり、Firewoksでデザインパーツをスライスし、Dreamweaverのテーブルレイアウトに貼付けるという手順で作業をしています。 一つのテーブルを2列に分け、左に画像、右にテキスト(イラストレーターのデーター)を入れたいのですが、画像はイメージ挿入でできたのですが、なぜかテキストが貼付けできません! どうやればいいのでしょうか?ちなみに、画像ではなく後に編集できるようにテキスト入力にしたいのですが… 初心者ですのでお詳しい方わかりやすく教えてください。 よろしくお願いします!

  • onmouseoverで別フレーム表示

    HPビルダー10でHP作成しています。 HPは左右でフレーム分けし、左にコンテンツ。クリックするとその内容(掲示板等)を右フレームで表示できるようにしてます。 onmouseoverという処理があると分って、オンマウスで右フレームに 内容表示させようとしてますが、右フレームに飛ばずに 左フレーム内で表示してしまいます。 設定ではフレーム場所はあっているのですが・・・ どこか手を加えないといけないと思うんですが、その辺がわからずに 手付かず状態です。 説明不足ですが、宜しくお願い致します。

  • 写真が表示されません

    HP初心者です。 alphaEDIT(フリーソフト)で作成して、サーバーはFC2を使用してアップしましたが、FC2上で写真が表示されません。 alphaEDITのプレビューや、自分のPC上で****.htmlをクリックすると 写真は表示されます。 写真の格納場所は、作成したhtmlと同じ場所にファイルしているのですが・・・ 素人の質問で申し訳有りませんが宜しくお願いします。

  • word2003テキストボックスが移動できない

    winXPです。今まではword2000だったのでテキストボックスに画像を挿入しても好きな場所に移動ができたのですが、2003では上下には移動できるのですが左右に移動の場合、一番左にテキストボックスがあるとしたら、キーボードの→を押すと、ずっと右に寄ってしまいます。マウスも使えません。どなたか操作方法を教えてください。また、テキストボックスを挿入しようとクリックしてマウスの左をおしたまま好きな大きさにしようとしても、縦はいいのですが横がA4サイズより、はみ出してしまいます。

  • 代替テキストの表示

    すみません。同じような質問を前にしたのですが、ビルダーで作成しています。 ビルダーで作成しているのですが、画像に代替テキストを挿入する方法はわかったのですが、リンク文字に代替テキストを挿入する方法がよくわかりません。 タグがあまり詳しくないので解り易く説明いただけないでしょうか? ここと、もう一つの問題で、大きく戸惑っています。書籍も探してみたんですけど、どれがいいかもよく解らなくて困っています。

    • ベストアンサー
    • CSS
  • HPでの画像

    現在ホームページビルダー6にてHP作成中です。クリップアート・写真などを 公開しているHPから右クリックで持ち帰り出来ないようにしたいのですが、 どのようにしたら良いのでしょうか? かなり難しい作業なのでしょうか?

専門家に質問してみよう