无法滚动到锚点

Posted

技术标签:

【中文标题】无法滚动到锚点【英文标题】:Can't scroll to anchor 【发布时间】:2021-08-06 19:09:52 【问题描述】:

我想创建元素周期表,在单击元素符号后显示一些附加信息。我使用了在 codepen 上找到的示例:https://codepen.io/ankit567/pen/wxbYXE,并且我设法让它与页面底部的可折叠 div 一起使用。不幸的是,我的知识不允许我克服我最近遇到的问题。我无法让页面滚动到刚刚打开的可折叠页面。

在这里你可以找到我目前的工作: https://codepen.io/zfkibuj/pen/RwpGWBL

如果您能帮助我找到解决方案,我将不胜感激。

我希望页面滚动到

<h1 id="tresc">Wzorce, odczynniki, roztwory pomocnicze do oznaczania</h1>

点击后:

<div class="element other-nonmetal c1 r1">
        <div data-toggle="collapse" href="#h" role="button" aria-expanded="false" aria-controls="h">
          <input class="activate" name="elements" type="radio" />
          <input class="deactivate" name="elements" type="radio" />
          <div class="square">
            <div class="atomic-number">1</div>
            <div class="label">
              <div class="symbol">H</div>
              <div class="name">Wodór</div>
            </div>
            <div class="atomic-mass">1.008</div>
          </div>
        </div>
      </div>

也许解决方案真的很简单,但我对 Wordpress 网站只有一些基本的经验。这是我迄今为止最大的项目:)

到目前为止,我发现了这个:

$('#h').on('shown.bs.collapse', function () 
  this.scrollIntoView();
);

工作得很好,但我不知道如何使它与其他 id 一起工作,如#he、#li、#be 等等......

【问题讨论】:

标准的解决方案是在你的所有元素上使用一个公共类,然后应用事件处理程序。 【参考方案1】:

谢谢,我通过添加解决了

onClick="document.getElementById('tresc').scrollIntoView();"

<div data-toggle="collapse" href="#h" role="button" aria-expanded="false" aria-controls="h">

最终解决方案如下:

<div data-toggle="collapse" href="#be" role="button" aria-expanded="false" aria-controls="be" onClick="document.getElementById('tresc').scrollIntoView();">

【讨论】:

以上是关于无法滚动到锚点的主要内容,如果未能解决你的问题,请参考以下文章

如何检测自动滚动到锚点?

javascript 平滑滚动到锚点

javascript 滚动到锚点

javascript 平滑滚动到锚点

jQuery滚动到锚点

Angular4 - 滚动到锚点