1

高さが固定されたスクロール可能な div があります。スクロール中に、表示されているビューポートの上部にある要素とビューポートの下部にある要素を取得する必要があります。scrollTop を使用してスクロールバーの位置を取得できますが、要素を取得する方法がわかりません。

更新:明確にするためにフォーマットされた質問。

4

4 に答える 4

1

div のスクロール位置を取得する

var scrollY = document.getElementById("yourDiv").scrollTop;

内部の要素をループして、その位置を確認します

var divs = document.getElementById("yourDiv").getElementsByTagName("div");
alert(divs[0].offsetTop)

どちらがscrollTopの位置にあり、もう1つはscrollTop + heightの位置にあるかを把握します

于 2009-11-18T17:35:56.127 に答える
0

DOM 要素を使用して div をループする必要があります。ここを見てください。役に立つリソースになると思います: http://www.howtocreate.co.uk/tutorials/javascript/dombasics

いくつかの配列とカウンターを使用すると、div の最後の要素を取得できるはずです。

于 2009-11-18T16:13:54.273 に答える
0

あなたの DIV はテキスト行の長いリストであり、すべての行は均一な高さになると思います。これが正しい場合、ビューポートの一番上にあるのはどれかを計算することができるので、尋ねる必要はありません。

いずれにせよ、この内容の最初のページを完全に表示したいので、完全で表示可能な行を 1 つ作成し、その高さを尋ねて、それを覚えておいてください。次に、それらの合計の高さがウィンドウの高さよりも大きくなるまで、テキストを含む行をさらに追加します。次に、サムのサイズと位置がリストのサイズを正確に反映するように、1990 程度の空行を追加します。

次に、誰かがウィンドウをスクロールしたときに、どの行が表示されるかを計算できます。ビューから移動したものを消去し、表示する必要があるものを構築します。終わり!

(私は思う - 私はこれを試したことがない!)

于 2009-11-18T18:54:42.443 に答える