javascript - 我可以检索当前的 anchor 位置吗?

标签 javascript

我一直在努力弄清楚这一点,但我一直在迷惑自己,无处可去。

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

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

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

最佳答案

如果 anchor 的 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>在窗口中。

关于javascript - 我可以检索当前的 anchor 位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597305/

相关文章:

javascript - 防止将重复项附加到目标工作表

javascript - 如何在响应大小有限的情况下获取更多的 API 记录

javascript - 使用父模型提取填充嵌套集合

javascript - 将文本内容写入新窗口(或将内容类型从 html 更改为文本)?

javascript - 对 React(?) 或 javascript 语法感到好奇

javascript - 如何用javascript检测Firefox mobile?

javascript - requirejs如何加载commonjs包?

javascript - 如何使用 JavaScript 在 DOM 节点上查找事件监听器

javascript - elevatezoom,图像显示在容器中

javascript - CSS 动画,点击开始和停止无限动画