18910140161

JavaScript-如何找出并控制哪些元素获得滚动键盘事件?-堆栈溢出

顺晟科技

2022-10-18 12:44:47

67

HTML有可滚动的元素。在任何给定的时间,它们中的一个将接收键盘滚动控制,如向上/向下箭头,PageUp/PageDown等。

如何以这种方式找出当前处于活动状态的元素,以及如何以这种方式使元素处于活动状态?

下面是JSFiddle来演示这个问题

我可以单击e1e2e3e4键。如果我这样做,那么箭头键将滚动该元素。

显而易见

的方法是调用element.focus()。但在可滚动的DIV上调用时,它不执行任何操作,并且document.activeElement始终指向body,而不是指向它们中的任何一个(实际活动的那个,或者我试图使其活动的那个)。

所以:

  • 没有其他的DOM来控制它?
  • 还是浏览器没有以任何方式公开此功能?
  • 或者我需要设置一堆tabindex设置来通过JS访问此状态,即使浏览器可以处理活动滚动状态,而不需要任何tabindex本身?

顺晟科技:

使用事件侦听器执行此

操作
function gg1(){
document.getElementById("focused").innerText = "e1"
}
function gg2(){
document.getElementById("focused").innerText = "e2"
}
document.getElementById("e1").addEventListener("scroll", gg1);
document.getElementById("e2").addEventListener("scroll",gg2);

这个代码只是你如何实现它的基本版本。你总是可以缩小它。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航