情况:我在一个由地图和一个侧边栏组成的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()