Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用HTML和/或JS转到下一个页面锚?_Javascript_Html_Anchor - Fatal编程技术网

Javascript 如何使用HTML和/或JS转到下一个页面锚?

Javascript 如何使用HTML和/或JS转到下一个页面锚?,javascript,html,anchor,Javascript,Html,Anchor,是否可以使用HTML和/或Javascript自动计算出下一个页面锚定并转到它?假设您的意思是相对于已知锚定/项目;如果您使用的是jQuery,那么它们有一个“下一个同级”选择器;请在此处查找文档: 我快用完了;否则,我会为您建立完整的选择器,但如果您今天晚些时候没有答案,我会将其放在一起 编辑 事实上,根据进一步的阅读,我想你是在寻找下一个锚相对于当前的滚动页面上的位置。。。这是一个多一点的工作。。。但这是可行的。。。(同样,我将在今天晚些时候提供JS) 编辑 这些不是100%完整的;但是应

是否可以使用HTML和/或Javascript自动计算出下一个页面锚定并转到它?

假设您的意思是相对于已知锚定/项目;如果您使用的是jQuery,那么它们有一个“下一个同级”选择器;请在此处查找文档:

我快用完了;否则,我会为您建立完整的选择器,但如果您今天晚些时候没有答案,我会将其放在一起

编辑

事实上,根据进一步的阅读,我想你是在寻找下一个锚相对于当前的滚动页面上的位置。。。这是一个多一点的工作。。。但这是可行的。。。(同样,我将在今天晚些时候提供JS)

编辑

这些不是100%完整的;但是应该足够了,这样你就可以大致了解情况了。如果您的页面是静态内容,我建议您浏览页面,并在文档就绪时缓存所有偏移量;确定元素偏移量可能非常慢(尤其是在较旧的浏览器中)

或者,如果您的页面具有动态内容,并且锚定位置在文档中不是固定的,那么您将看到更接近的内容

function getNextAnchorId() {
  var result = null;

  $("A[id]:not(A[href])").each(function (index, value) {
    var $anchor = $(value);
    var $window = $(window);
    var minOffset = $window.scrollTop() + $window.height();

    if($anchor.offset().top >= minOffset) {
      result = $anchor.attr("id");
      return false;
    }
  });

  return result;
}

根据您的页面,您可能需要扩展此想法。以上两种解决方案都假设了一个非常基本的文档布局。如果您对相对/绝对位置或可滚动div等有任何想法,您需要加强这一点(如果是这样的话,我可以提供代码)。现在,虽然我假设我们讨论的是一个基本的问题,但是在页面上找到锚,并根据滚动位置确定下一个锚。另外,我没有做过广泛的测试,所以可能还需要一些润色:D

我想我理解你在寻找什么。如果你知道身份证,你可以用这个

function Next(){
    var lnkNext = document.getElementById("yourNextAnchorId");
    window.location.href = lnkNext.src;
}

如果您不知道id,可以通过innerText获得锚定,阅读您对卡尔加里编码器的评论,我相信-如果我理解正确-您正在寻找当前URL中的锚定。您可以使用
window.locaiton.hash
执行此操作。例如

alert(window.location.hash);

谢谢大家的回答,但我通过实施成功地实现了这一点。这是通过转到下一个标题而不是下一个锚来实现的,但我想如果使用锚非常关键,那么可以很容易地进行调整。

下一步在什么意义上?相对于当前滚动量的下一个最低位置?是。我在一本html电子书中使用它,每个章节设置都是它自己的锚定和浮动页脚,我希望能够打开下一章和上一章的按钮。我认为这是一个公平的问题,不知道为什么它被否决了?你是否试图在用户到达末尾后自动转到下一页?不是真的。我有一个长的页面分成不同的部分,每个部分作为锚定。我有一个浮动页脚在页面底部,我想有一个下一步按钮。这需要获得当前的滚动位置,从中找出当前的锚,然后转到锚。对不起,我没有在问题中澄清,我是指相对于当前页面位置。JQuery中是否有任何东西可以让您从页面位置获取当前锚点?(我什么也找不到,但我可能错过了什么。)编辑:好的,谢谢。我可能要到明天才能回复(我是英国人,所以今晚就到这里了)。谢谢。唯一的问题是,如果用户向下滚动,他们的URL中就不会有锚。他们是否有任何类似的代码可以从当前滚动位置找到锚?不幸的是,没有,除非他们单击页面上的另一个锚,或者当他们通过页面上的某些点时,您以某种方式强制锚跳转(即使这种方法碰巧可行,我也不推荐这种方法……它可能会成为用户的一种相当不稳定的体验)。但是你可能可以用类似于这个家伙的方式检查滚动位置:谢谢你的回答,但我设法找到了另一种方法。有趣的是……有这么多jQuery插件:D看起来是一段相当多的代码,但只要它能做到这一点,就足够了。很好的发现。
alert(window.location.hash);