重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

OS情報:MacOSX
ブラウザ情報:Safari
今作成中のホームページの左側にボックスをつくってその中にクリックすると別ページに飛ぶリンクを縦に並べています。ボックス内はCSSでオーバーフロー自動の設定にしているので、下の方のリンクはスクロールしなければ見えません。今の状態は見えているリンクをクリックして別ページに飛ぶ分にはいいのですが、スクロールしてリンクをクリックした場合、別ページに移動した時、またスクロールがトップの位置に戻ってしまいます。これだとそれ以下にあるリンクをクリックしたい時に、いちいち下方向にスクロールしながらでないといけません。そこで、クリックして移動した後、そのページのリンク名が表示される位置でスクロールバーを固定できないか…ということなのですが、何かよい方法はないでしょうか?

A 回答 (1件)

Javascriptで。


画面のロード終了時に指定したidの要素までスクロール位置をずらすサンプルです。

Win版のSafari3で試したのでたぶんMac版Safariでも大丈夫だと思います。

<html>
<head>
<title></title>
<style type="text/css">
#LINKBLOCK{
position:relative;/*リンクの相対位置を得るのに必要!*/
/*後はテスト用に適当*/
width:5em;
height:5em;
overflow:auto;
border:solid 1px black;
}
p{padding-top:8em;}
</style>
<script type="text/javascript">
function linkScroll(linkId){
var obj = document.getElementById(linkId);
var block = document.getElementById('LINKBLOCK');
block.scrollTop = obj.offsetTop;

}
</script>
</head>
<body onload="linkScroll('LINK1')">
<!-- ↑ここで指定したidが表示されるように -->
<div id="LINKBLOCK">
<p><a href="~~" id="LINK1">リンク</a></p>
<p><a href="~~" id="LINK2">リンク</a></p>
</div>

</body>
</html>
    • good
    • 0
この回答へのお礼

steel_grayさん、適切な回答ありがとうございました。
少し手こずりましたがちゃんと表示も確認でき、そのページでスクロールバーが固定されるようになりました!
いろいろと調べたりしたのですが、思い通りにいかなくてとても困っていました。本当にありがとうございましたm()m

お礼日時:2007/10/11 12:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!