0

内部にアンカーを含むdiv「コンテンツ」があります。id="one"

現在、外部リンクから onClick イベントを使用して「コンテンツ」をピクセル距離だけスクロールし、ページの残りの部分をジャンプさせずに「1」を表示しており、計画どおりにスムーズに動作します...

onClick="document.getElementById('content').scrollTop = 400;

offsetTopしかし、「1」の正確な距離を計算し、任意の数値ではなくその距離だけスクロールしたいと思います。

これは私がしようとしているものです:

<script type="text/javascript">
<!--
var topPos = document.getElementById('one').offsetTop;
//-->
</script>

onClick="document.getElementById('content').scrollTop = topPos;

<a id="one"></a> being how I ID the element within the content.

しかし、topPos は null を返します! 私はこれを乗り越えることができないようです。それが私の Javascript スキルの低さ (おそらく) なのか、それとも私の CSS が数値を提供していないという事実なのかはわかりません。これが重要な場合、私は固定配置を使用していません。誰かが私の明白なエラーを教えてもらえますか? 前もって感謝します。

4

2 に答える 2

1

使用しない理由はありますscrollIntoView()か?

https://developer.mozilla.org/en/DOM/element.scrollIntoView

于 2011-06-15T20:38:59.893 に答える
0

スクリプトの場所によっては、ブラウザが topPos を取得するのに十分な情報をまだ持っていないことが原因である可能性があります。スクリプトをページの下部に配置するか、ページ読み込みイベントに応答して実行してみてください。または、事前に計算する代わりに、onClick に関数を呼び出して位置を計算し、スクロールを設定します。

于 2011-10-17T22:17:59.800 に答える