滚动到活动折叠面板,不带 jQuery



情况:我在一个由地图和一个侧边栏组成的Web应用程序上工作。在侧边栏中,有一个手风琴,有20个面板。当用户在地图上选择一个点时,将打开相关的折叠面板。

问题:当用户选择一个点时,不仅应打开面板,还应滚动到激活的面板。

我已经尝试过:我已经在寻找几个小时的解决方案,但是建议的解决方案要么适用于jQuery(我不能使用),要么基于html元素ID的不同滚动选项,例如我无法使用document.getElementById('id').scrollIntoView();,因为面板是带有类而不是id属性的div元素。我尝试对document.getElementsByClassName()使用scrollIntoView()选项,但它不起作用。

代码我处理html,css和JavaScript代码,我不使用jQuery。我实现的手风琴位于带有 id("description")的div 中,手风琴本身由标题<button class="accordion">和面板组成<div class="accordion-panel">

问题:知道我如何滚动到特定的div 元素(来自 20 个都属于同一类的div 元素,但可以通过它们的特定 ID/编号(不是 html id 属性)进行寻址)吗?

我假设你有一个类,它说明了哪个手风琴面板处于活动状态。如果这是真的,这个解决方案应该可以工作。否则,请发布您拥有的一些 HTML。

要获得所需的元素,您应该使用getElementsByClassName,它接受多个类:

document.getElementsByClassName('accordion-panel active')

如果您确定只有其中一个元素,您应该能够执行以下操作:

document.getElementsByClassName('accordion-panel active')[0].scrollIntoView()

最新更新