我一直试图弄清楚这一点,但我一直在迷惑自己。
我有一个博客,所有帖子按时间顺序从 1 到 X(类)编号,博客的每个页面显示 10 个帖子,每个帖子都有一个编号的锚点(post1、post2 等)。
如果用户没有通过单击链接到达锚点,我无法弄清楚如何检索当前显示在屏幕上的元素的锚点的 ID/类/名称(滚动条所在的位置)。
这甚至可以做到吗?我正在尝试用 JavaScript 对其进行编码,但我不知道从哪里开始,向正确的方向点头会很有帮助。
我一直试图弄清楚这一点,但我一直在迷惑自己。
我有一个博客,所有帖子按时间顺序从 1 到 X(类)编号,博客的每个页面显示 10 个帖子,每个帖子都有一个编号的锚点(post1、post2 等)。
如果用户没有通过单击链接到达锚点,我无法弄清楚如何检索当前显示在屏幕上的元素的锚点的 ID/类/名称(滚动条所在的位置)。
这甚至可以做到吗?我正在尝试用 JavaScript 对其进行编码,但我不知道从哪里开始,向正确的方向点头会很有帮助。
如果锚点的 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>
在窗口中。
我会测试所有锚链接是否在视口中可见。如果可见多个,您需要决定选择哪一个。