2

私はこれを理解しようとしてきましたが、どこにも行きません。

すべての投稿に 1 から X (クラス) までの時系列番号が付けられたブログがあり、ブログの各ページには 10 の投稿が表示され、それぞれに番号付きのアンカー (post1、post2 など) が付いています。

ユーザーがリンクをクリックしてアンカーに到達しなかった場合、現在画面に表示されている要素 (スクロールバーがある場所) のアンカーの id/class/name を取得する方法がわかりません。

これもできますか?JavaScript でコーディングしようとしていますが、どこから始めればよいかわかりません。正しい方向にうなずくことが大いに役立ちます。

4

2 に答える 2

0

アンカーのID/名前がURLにない場合は、関数を組み合わせて要素の絶対位置を取得してみてください

function pos(e) {
    var o = {left:e.offsetLeft, top:e.offsetTop};
    while (e=e.offsetParent)
        o.left = o.left + e.offsetLeft,
        o.top = o.top + e.offsetTop;
    return o;
}

ループオーバーdocument.getElementsByTagName('a')(またはチェックしたいノードのその他のリスト)

window.scrollY <= o.top && o.top <= window.scrollY + window.innerHeightがウィンドウにあるかどうかを確認し<a>ます。

于 2012-11-28T03:46:46.407 に答える
0

ビューポートに表示されるすべてのアンカー リンクをテストします。複数表示されている場合は、どれを選択するかを決める必要があります。

現在のビューポートに DOM 要素が表示されているかどうかを確認する方法は?

于 2012-11-28T03:53:16.463 に答える