2

我一直试图弄清楚这一点,但我一直在迷惑自己。

我有一个博客,所有帖子按时间顺序从 1 到 X(类)编号,博客的每个页面显示 10 个帖子,每个帖子都有一个编号的锚点(post1、post2 等)。

如果用户没有通过单击链接到达锚点,我无法弄清楚如何检索当前显示在屏幕上的元素的锚点的 ID/类/名称(滚动条所在的位置)。

这甚至可以做到吗?我正在尝试用 JavaScript 对其进行编码,但我不知道从哪里开始,向正确的方向点头会很有帮助。

4

2 回答 2

0

如果锚点的 id/name 不在 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 回答