我可以检索当前的锚位置吗?

时间:2012-11-28 03:29:33

标签: javascript

我一直在努力解决这个问题,而且我一直在为自己做好准备。

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

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

甚至可以这样做吗?我正在尝试用JavaScript编写代码,但我不知道从哪里开始,朝正确的方向点头会有很多帮助。

2 个答案:

答案 0 :(得分: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>是否在窗口中。

答案 1 :(得分:0)

我会测试所有锚链接在视口中可见。如果有多个可见,您需要决定选择哪一个。

How to tell if a DOM element is visible in the current viewport?