如何使用Javascript滚动到下拉列表中的特定选项(未选中)
我想知道是否可以在下拉列表中滚动到特定选项(当前未选中)。我的意思是我有一个年份下拉列表,我想在这个下拉列表中滚动到当前年份。下拉列表中的选定项是第一个选项,即标签“选择年份”。 这是可能的,因为下拉滚动到所选的选项,在我的情况下,当前年份没有被选中。如何使用Javascript滚动到下拉列表中的特定选项(未选中),javascript,scroll,dropdown,Javascript,Scroll,Dropdown,我想知道是否可以在下拉列表中滚动到特定选项(当前未选中)。我的意思是我有一个年份下拉列表,我想在这个下拉列表中滚动到当前年份。下拉列表中的选定项是第一个选项,即标签“选择年份”。 这是可能的,因为下拉滚动到所选的选项,在我的情况下,当前年份没有被选中。 谢谢。你当然可以。vanilla javascript中的步骤: 您需要查找当前年份,因此在下拉列表中将每年的id设置为该年份 然后查询本年度的DOM: var currentYear = new Date().getFullYear() var
谢谢。你当然可以。vanilla javascript中的步骤: 您需要查找当前年份,因此在下拉列表中将每年的id设置为该年份 然后查询本年度的DOM:
var currentYear = new Date().getFullYear()
var currentYearElement = document.getElementById(currentYear.toString())
将当前年份滚动到顶部
currentYearElement.scrollTop = 0
如果仍然有问题,请粘贴代码
通常,您还可以通过getBoundingClientRect()
获取元素在页面上的位置,该属性包含top
(它到底有多远)属性和其他属性console.log
查看它们的值。然后通过执行以下操作滚动到该位置:
positions = element.getBoundingClientRect()
document.scrollTo(0, positions.top) // arguments are x, y
否,我有下拉列表,默认情况下选择的选项是标签“选择年份”。我想当用户点击下拉列表并打开时,滚动到“2017”年。我不必使用jquery。请将前面的评论添加到问题中,以使其他人更清楚。我没有删除它。请加上。谢谢你的回答。我必须滚动到当前年份的该选项,而不是滚动到“0”。我怎么能得到这个高度呢?我今天已经试过了,但它给了我一个错误,我不能用这种方式选择选项。我添加了每个选项的
id
,并尝试这样选择:document.getElementById('myDropdownName#2017')
它给了我一个不允许的错误选择器。getElementById接受一个id名称,所以document.getElementById('2017')
是正确的。如果您听到的错误听起来像是与语法有关,请搜索如何使用这些函数的示例。哦,我的错误,我是这样做的:document.querySelector(“#myDropdownName#2017”)
。如果我用值2017
设置selected option,如果用户关闭下拉列表而不选择任何选项,我会考虑另一种解决方案,以恢复它并设置selected“Select year”