情况: 我在一个由地图和侧边栏组成的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(" description")中,手风琴本身由标题document.getElementById('id').scrollIntoView();
和面板<button class="accordion">
问题: 知道如何滚动到一个特定的div元素(来自20个div元素,这些元素都属于同一个类,但可以通过它们的某个ID /数字(不是html id属性)来解决)?
答案 0 :(得分:1)
我假设你有一个类,说明哪个手风琴组是活跃的。如果这是真的,这个解决方案应该可行。否则,发布你的一些HTML。
要获得所需的元素,您应该使用getElementsByClassName
,它接受多个类:
document.getElementsByClassName('accordion-panel active')
如果您确定只有其中一个元素,您应该能够执行以下操作:
document.getElementsByClassName('accordion-panel active')[0].scrollIntoView()