滚动到没有jQuery的活动手风琴面板

时间:2017-06-27 06:35:44

标签: javascript html accordion

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

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

我已尝试过的内容: 我一直在寻找解决方案几个小时,但是提议的解决方案可以使用jQuery(我不能使用)或不同的滚动选项,这些选项基于像ids_to_delete = session.query(Engineer.id). \ filter(Employee.name == "John"). \ all() # Convert the resulting int tuples to simple strings: id_strings = [str(id_[0]) for id_ in ids_to_delete] session.query(Engineer). \ filter(Engineer.id.in_(id_strings)). \ delete(synchronize_session=False) 这样的html元素的ID无法使用,因为面板是具有类而不是id属性的div元素。我尝试使用document.getElementsByClassName()的scrollIntoView()选项,但它没有用。

代码: 我处理html,css和JavaScript代码,我不使用jQuery。我实现的手风琴在带有id的div(&#34; description&#34;)中,手风琴本身由标题document.getElementById('id').scrollIntoView();和面板<button class="accordion">

组成

问题: 知道如何滚动到一个特定的div元素(来自20个div元素,这些元素都属于同一个类,但可以通过它们的某个ID /数字(不是html id属性)来解决)?

1 个答案:

答案 0 :(得分:1)

我假设你有一个类,说明哪个手风琴组是活跃的。如果这是真的,这个解决方案应该可行。否则,发布你的一些HTML。

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

document.getElementsByClassName('accordion-panel active')

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

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