需要在 3x3 div 容器上使用箭头导航在此代码中,指针指向第一个元素周围的 4 个边,并且应该指向 9 个元素中的一个,并在按下回车键时单击
let pointer = document.createElement('div')
pointer.className = 'tile'
container.appendChild(pointer)
console.log(pointer)
pointer.style.display = 'none'
pointer.classList.add('active')
let newContainer = document.getElementsByClassName('container')[0]
document.addEventListener('keydown', () => {
pointer.style.display = 'block'
pointer.tabIndex = 0;
let rectElem = container.getBoundingClientRect();
let x = rectElem.x + pageXOffset,
y = rectElem.y + pageYOffset;
if (event.code === 'ArrowRight') {
x += pointer.offsetWidth;
}
if (event.code === 'ArrowLeft') {
x -= pointer.offsetWidth;
}
if (event.code === 'ArrowUp') {
y -= pointer.offsetHeight;
}
if (event.code === 'ArrowDown') {
y += pointer.offsetHeight;
}
pointer.style.position = 'absolute';
pointer.style.left = x + 'px';
pointer.style.top = y + 'px';
})
由于您已经拥有这些元素,因此不需要额外的
pointer. 您可以简单地使用所需的索引更改元素的样式: