• 締切済み

指定した箇所へスクロールさせたい

お世話になります。 a.htmlの中のテーブルのセル内に、テキストを入れてあります。このセルにだけ縦スクロールバーをつけてあります。下記ソースの<div class="scrlbox">の部分です。 別ページのb.htmlにあるリンクをクリックした時、a.htmlを子画面で開いて、なおかつテーブルのセル内の指定した行まで自動でスクロールダウン/アップするということは可能でしょうか? (window.scroll()なかんじではなく、セル内"だけ"がスクロールするイメージです。) a.htmlとb.htmlの連携部分はあまり気にせず、テーブルのセル内のテキストだけを任意の場所へスクロールさせることが可能かどうか、説明がややこしいですが、ご教授、よろしくお願いいたします。 ----------------------- a.html ----------------------- <table border="1" width="450" height="420" bgcolor="#9999ff">  <tr>   <td width="15" height="350">&nbsp;</td>   <td width="420" height="350">    <div class="scrlbox">     ★みだしその1<br/>     ああああああ(長めのテキストが入ります)・・・     <br/><br/>     ★みだしその2<br/>     ああああああ(長めのテキストが入ります)・・・     ★みだしその3<br/>     ああああああ(長めのテキストが入ります)・・・    </div>   </td>   <td width="15" height="350">&nbsp;</td>  </tr>  <tr><td colspan="3" align="center">footer</td></tr> </table>

みんなの回答

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは 【a.html】 <style type="text/css"> <!-- body { margin:0px; padding:0px; } //--> </style> <script language="javascript"> <!-- window.onload=function() { url = location.href; location.href=url; } //--> </script> <table border="1" width="450" height="420" bgcolor="#9999ff"> <tr> <td width="15" height="350">&nbsp;</td> <td width="420" height="350" > <div style="height:350px;overflow:auto;"> <a name="scroll1">     ★みだしその1</a><br/>     ああああああ(長めのテキストが入ります)・・・     <br/><br/><br/><br/><br/><br/><br/><br/>     <br/><br/><br/><br/><br/><br/><br/><br/> <a name="scroll2">  ★みだしその2<a><br/>     ああああああ(長めのテキストが入ります)・・・     <br/><br/><br/><br/><br/><br/><br/><br/>     <br/><br/><br/><br/><br/><br/><br/><br/> <a name="scroll3">     ★みだしその3</a><br/>     ああああああ(長めのテキストが入ります)・・・     <br/><br/><br/><br/><br/><br/><br/><br/>     <br/><br/><br/><br/><br/><br/><br/><br/> </div> </td> <td width="15" height="350">&nbsp;</td> </tr> <tr><td colspan="3" align="center">footer</td></tr> </table> 【b.html】 <script language="javascript"> <!-- function openwin(n) { subWin = window.open("a.html#"+n+"","Win","width=450,height=420,top=200px,left=200px"); } //--> </script> <a href="b.html" onClick="openwin('scroll1')">見出し1</a> <a href="b.html" onClick="openwin('scroll2')">見出し2</a> <a href="b.html" onClick="openwin('scroll3')">見出し3</a> IE,FirefoxではすんなりいったのですがOperaでは子画面を一度更新しないとアンカーに飛ばなかったのでwindow.onloadをつけてます(^^) あと<tr><td>間</td><td>間にはあまりスペースなどを置かないようにしましょう。表外のものと認識されて表の上に吐き出されてしまいますので・・・ サンプルをコピペして表示すると表の上に数行空白行が表示されました(><)

upperground
質問者

お礼

leap_dayさん、ありがとうございました。 そのような方法もあるのですね。勉強になりました。

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

<script language="javascript"><!-- function xMoveto(id){ for (i=0;i<document.anchors.length;i++) { if(id && document.anchors[i].name==id){ spt=document.anchors[i].offsetTop; } } document.getElementById("pos").style.top=0; pos.focus(); document.getElementById("pos").style.top=spt+330; pos.focus(); } --> </script> <table border="1"> <tbody> <tr> <td><input type="button" value="見出しその1" onclick="xMoveto('sono1')"><input type="button" value="見出しその2" onclick="xMoveto('sono2')"><input type="button" value="見出しその3" onclick="xMoveto('sono3')"></td> </tr> <tr> <td width="420" height="350" valign="top">    <div class="scrlbox" style="height:350px;"> <div id="pos" style="position:absolute;top:350px;left:0px;">&nbsp;</div> <a name="sono1">★みだしその1</a><br> あああああ・・・<br> <br> <a name="sono2">★みだしその2</a><br> いいいいい・・・<br> <br> <a name="sono3">★みだしその3</a><br> <br> ううううう・・・</div> </td> </tr> </tbody> </table> 参考までに、作成してみました。 見出し部分にアンカーを設置し、 xMoveto("アンカー名"); で指定アンカーの位置の部分までスクロールします。 10行目の"330"という値はスクロールの表示領域部分に合わせて調節する必要があります。 上記コーディングの場合、表示領域は350pxですので、"330"にしています。(spt+350; にすると少し下にオーバーする)

upperground
質問者

お礼

is_mayさん、ありがとうございました。 勉強になりました。

関連するQ&A

  • テーブル内のスクロール

    初めて質問いたします。 HTML構文をきちんと理解しないまま、サイトをつくってしまっていますが、ひとつ困っていることがあります。テーブルの中のひとつのセルの高さサイズを固定してその中につくったテーブルを縦にスクロールさせています。winではうまく表示できるのですが、mac環境の人からスクロールしないと言われました。ブラウザはIE5と聞いています。以下のような構文にしていますが、なにか間違えているのでしょうか?どなたか教えていただけると助かります。よろしくお願いいたします。 <table width="620" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"height="500"> <tr> <td height="60" valign="top"> </td> </tr> <tr> <td> <div align="center"> <div style="height:400px;width:600px;overflow-y:scroll;"> <table width="600" border="0" cellspacing="0" cellpadding="0"> </table> </div> </div> </td> </tr> </table>

    • ベストアンサー
    • HTML
  • スクロールバーの表示位置を変えたい

    スクロールバーの表示位置をテーブルの右側から、テーブルの左側に移したいのですが、単にdiv文をTableの前に持ってきても変更できません。 どのようにしたら左側に表示できるのでしょうか? <div id="rowScroll" STYLE="overflow-y:scroll; height=280;width:100%"> <table border="1" CELLSPACING="0" class="tableSearch2" width="20%" align="left"> <tr class="tdListTitle"> <td width="24" align="center" nowrap>レ</td> <td width="21" align="center">No</td> <td width="195" align="center" nowrap>L5.資源名称</td> <td width="60" align="center" nowrap>単位</td> <td width="100" align="center" nowrap>投入数量/単価</td> </tr> </table>

  • tableタグ、heightタグについて

    下記のようなテーブルを組んだのですが うまくセルの高さを指定できなくて困っています。 セルの高さを固定せずに作成することは可能でしょうか? 宜しくお願いします。 <html> <head> </head> <body> <table width="500" border="1"> <tr> <td rowspan="2" height="200" width="40" valign="top"> &nbsp; </td> <td colspan="2"> &nbsp; </td> </tr> <tr> <td width="230" valign="top">1</td> <td rowspan="2" width="230" valign="top"> <br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp; <br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp; <br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp;<br>&nbsp; </td> </tr> <tr> <td colspan="2" valign="top">このセルの高さを1の下まで伸ばしたい</td> </tr> </table> </body> </html>

  • tableのheight指定が効かない

    tableの高さを固定したく、heightとoverflowを指定したんですが、 tableに記述したソース分の大きさ(高さ)になり、スクロールバーが表示されません。 /*----外部CSS----*/ .sample{ color: #ffffff; background-color: #000000; height: 500px; width : 90%; overflow:scroll; } /*----ソース-----*/ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <link rel="stylesheet" type="text/css" hrefstyle.css"></head> <body> <table class="sample"><tbody><tr> <td class="a1"></td><td class="a0"></td><td class="a2"></td></tr><tr> <td class="a0"></td><td class="a0"> <div class="text">本文(heightが700pxくらいの内容)</div> </td><td class="a0"></td></tr><tr> <td class="a3"></td><td class="a0"></td><td class="a4"></td> </tr></tbody></table>                   ※tdのclassはテーブルのふちに用いてる画像を指定してあります。 </body> </html> 解決方法をご存知の方、よろしくお願いします。

    • ベストアンサー
    • HTML
  • tableでレイアウトが崩れる場合

    技術の足りなさからCSSにできなかったので、再度テーブルでサイズを指定してやってみようとしているところです。 どこかの数字がおかしくなっていると思うのですが、どうしてもわかりません。 ちゃんと表示できるブラウザとそうでないブラウザがあり、Firefoxは環境設定により表示が崩れる場合があります。 使用ソフトはビルダーの11です。 なんでも良いのでどうぞアドバイスをよろしくお願い致します。 <body> <div ALIGN="center"> <table> <tbody> <tr> <td CLASS="td4" HEIGHT="70"> <table WIDTH="600" CELLSPACING="1" CELLPADDING="0"> <tbody> <tr> <td VALIGN="top" CLASS="td1" WIDTH="400" ALIGN="left" HEIGHT="180"> <b>文字 <textarea ROWS="15" COLS="70">文字</textarea><br> <br> </td> <td VALIGN="top" CLASS="td1" WIDTH="100" HEIGHT="180"> <table CELLSPACING="0" CELLPADDING="4"> <tbody> <tr> <td CLASS="td2" HEIGHT="16" WIDTH="100">文字</td> </tr> </tbody> </table> 文字 <br> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br> </div> </body>

    • ベストアンサー
    • HTML
  • CSS セルごとリンクにする際、リンク文字を上下中央寄せにしたい

    セルごとリンクにしたくて、以下の記述をしました。 【CSS】 ------------------------------------------------------------------ a.widelink{ vertical-align:middle; display:block; // display:inline-block; width: 100%; height:100%; // line-height:100%; color: #000000; text-decoration:none } a.widelink:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; text-decoration:none } td.bgchng{ align: center; vertical-align: middle; color: #000000; margin: 0px; padding: 0px; } td.bgchng:hover{ vertical-align: middle; color: #000000; background-color: #9999FF; margin: 0px; padding: 0px; } ------------------------------------------------------------------ 【HTML】 ------------------------------------------------------------------ <TABLE border="1" bordercolor="#6666CC" cellspacing="0"> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test01.html" CLASS="widelink"> テスト<BR>(その1) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その1)の説明文<BR> &nbsp;二行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test02.html" CLASS="widelink"> テスト(その2) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その2)の説明文<BR> &nbsp;二行目<BR> &nbsp;三行目 </TD> </TR> <TR> <TD width="150" height="60" valign="middle" align="center" CLASS="bgchng"> <A href="test03.html" CLASS="widelink"> テスト(その3) </A> </TD> <TD width="450" bgcolor=""> &nbsp;テスト(その3)の説明文<BR> &nbsp;二行目 </TD> </TR> </TABLE> ------------------------------------------------------------------ この記述だとリンク文字がセルのTOPに来てしまい、中央寄せになりません。 思いつく限りの場所にvertical-alignやvalignを仕込んでみましたがダメでした。 line-heightであわせる方法もやってみましたが、<BR>を含むリンク文字の表示が二行揃ってくれず、ダメでした。 セル自体をリンクにして、さらにリンク文字を上下中央寄せにしたいのですが、やり方をご存知の方、教えてください。

  • IE以外のブラウザで隙間ができる

    お世話になっております。 上テーブルと下テーブルを隙間なく配置したいのですがIE6,7以外のブラウザだと3pxくらいの隙間ができてしまいます。厚かましいお願いで恐縮ですが、下記タグをチェックしていただけないでしょうか…。 <table width="758" height="160" border="0" cellpadding="0" cellspacing="0" background="image/gazou.jpg" style="background-repeat:no-repeat"> <tr><td height="30">&nbsp;</td></tr> <tr><td>ここに文字を入れています</td></tr> <tr><td height="30">&nbsp;</td></tr> </table> <div class="test"><br> <table width="758" border="0" cellpadding="0" cellspacing="0"> <tr><td>ここも文字</td></tr> </table> </div> 上のテーブルには背景画像を指定しており、下テーブル部分に色をつけたいのでdivを使いCSSを適応させています。(デザイン上、下テーブル背景に色をつけるのではダメなので) これが問題なのかと思い、divタグを消してみたりしましたがだめでした。 div"test"のCSSは .test{ margin:0px; padding:0px; background-color:#333333; border-bottom:solid 1px #999999; width:758px; height:262px; } としています。 本当に厚かましいお願いで恐縮ですが、ご教授いただけるととても助かります。どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • 固定幅div内のテーブルセルの幅指定方法

    幅を指定して横スクロールバーを有効にしたdivがあります。 その中に、divよりも幅の広いtableを置き、thやtdの幅を指定したいのですが、有効になりません。 tableへの幅指定は有効になるのですが、内容が動的に変化するので、セル単位で幅を指定したいと思っています。 解決方法がありましたらお願いいたします。 HTML:標準モード UA:Windows xp IE6 サンプルコード: <style> div{ height:200px; width:200px; overflow-x:scroll; border:#f99 solid 1px; } table{ background:#ddd; border:#666 solid 1px; } td{ width:100px; border:#666 solid 1px; } </style> <div> <table> <tr> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> <td>サンプルテキスト</td> </tr> </table> </div>

    • ベストアンサー
    • HTML
  • スクロールするテーブルに背景画像を固定させたいのです

    HTMLでテーブルを作り、スクロールできる仕様にしました。そこに背景画像を入れたのですが、スクロールの際に一緒に背景画像もスクロールしてしまいます。 文字などだけをスクロール可能にして、背景画像を固定にする方法を知っている方は教えてください。 私のソースは下記です。よろしくお願いします。 <html> <TABLE border="0" width="695" background="top-6.GIF"> <TR><TD width="72" height="34"></TD><TD width="623" height="34"><font color="red"><b><center>お知らせ</center></b></font></TD></TR> </TABLE> </DIV> </DIV> <!--本体部分--> <DIV style="overflow-y:scroll;direction:ltr;width:695;height:114px"> <DIV style="direction:ltr"> <TABLE border="0" width="695" background="top-7.GIF" style="background-attachment: fixed"> <TR><TD width="72">A</TD><TD width="623">B</TD></TR> <TR><TD>C</TD><TD>D</TD></TR> <TR><TD>E</TD><TD>F</TD></TR> <TR><TD>G</TD><TD>H</TD></TR> <TR><TD>I</TD><TD>J</TD></TR> <TR><TD>K</TD><TD>L</TD></TR> <TR><TD>M</TD><TD>N</TD></TR> <TR><TD>O</TD><TD>P</TD></TR> </TABLE> <DIV style="overflow-y:scroll;direction:ltr;width:695; scrollbar-base-color:#FFFFFF; scrollbar-track-color:#FFFFFF; scrollbar-face-color:#FFFFFF; scrollbar-shadow-color:#FFFFFF; scrollbar-darkshadow-color:#FFFFFF; scrollbar-highlight-color:#FFFFFF; scrollbar-3dlight-color:#FFFFFF; scrollbar-arrow-color:#FFFFFF"> <DIV style="direction:ltr"> </DIV> </DIV> </html>

  • CSSでスクロールボックス

    div要素を使ってスクロールボックスのようなものを作っているのですが、その中にa:hoverを使ったリンクがあり、このリンクにマウスカーソルを持ってくると、スクロールボックス自体が下の方に移動してしまいます。 Internet Explorerでだけこの現象が発生します。FirefoxやOperaでは問題ありません。 何か解決方法はないでしょうか。 一応以下にソースを載せます。縦方向のスクロールする行が多いほど、移動する量も大きくなります。 --- css --- div.test { width: 90%; height: 100px; border: 1px solid #003333; overflow: scroll; } a.test:link, a.test:visited { color: #000000; text-decoration: underline; } a.test:hover { color: #ffffff; background-color: #999999; text-decoration: none; } --- End --- --- html --- <div class="test"> <table class="test" align="center"> <tr> <th width="100px"><a class="test" href="test.html">Col1</a></th> <th width="100px"><a class="test" href="test.html">Col2</a></th> <th width="100px"><a class="test" href="test.html">Col3</a></th> <tr> <td nowrap>data1</td> <td nowrap>data2</td> <td nowrap>data3</td> </tr> 以下、同じようにあと10行程度追加 </table> </div>

    • ベストアンサー
    • CSS

専門家に質問してみよう