首先,我想只使用原生 JavaScript 来完成这项任务。
假设我要制作一个自定义下拉菜单,HTML 代码看起来像这样。
<div class="dropdown">
<span class="dropdown-label" style="display:block">Select a thing</span>
<ul class="dropdownItemContainer">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
</div>
在 CSS 文件中,我有一些接近于此的内容:
ul.dropdownItemContainer li:hover {
background-color: #FF0000;
}
是的,确实没有下拉行为,但这实际上不是讨论的重点。问题是我想不出一种体面的方法来为此下拉菜单启用键盘控制。期望的结果如下:我按下向下键,第一个选项被突出显示;我再次按下它,第二个选项被突出显示,依此类推。
我在这一点上看到的唯一选择(刚开始学习 JS)是获取所有的ul
孩子,将它们粘贴到一个数组中,并通过 JS 方法以适当的方式为标签分配背景颜色,只要按下键按下。
另一方面,我仍然有鼠标控制的 CSS 中描述的 :hover 行为。有模拟悬停的聪明方法吗?