js实现聚焦
实现元素聚焦的方法
在JavaScript中,可以通过多种方式实现元素聚焦。以下是几种常见的方法:
使用focus()方法
通过DOM元素的focus()方法可以直接让元素获得焦点:
document.getElementById('inputField').focus();
设置autofocus属性
在HTML5中,可以使用autofocus属性让元素在页面加载时自动获得焦点:

<input type="text" autofocus>
通过tabIndex属性
对于非表单元素,可以设置tabIndex属性使其可获得焦点:
const divElement = document.querySelector('.focusable-div');
divElement.tabIndex = -1;
divElement.focus();
聚焦时的样式控制
当元素获得焦点时,可以通过CSS的:focus伪类来改变其样式:

input:focus {
border: 2px solid blue;
outline: none;
}
聚焦事件监听
可以监听元素的聚焦和失焦事件:
const input = document.getElementById('myInput');
input.addEventListener('focus', () => {
console.log('元素获得焦点');
});
input.addEventListener('blur', () => {
console.log('元素失去焦点');
});
程序化聚焦管理
在某些情况下需要更复杂的聚焦管理:
// 聚焦下一个可聚焦元素
function focusNextElement() {
const focusableElements = document.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
const currentIndex = Array.from(focusableElements).indexOf(document.activeElement);
if (currentIndex < focusableElements.length - 1) {
focusableElements[currentIndex + 1].focus();
}
}
无障碍考虑
实现聚焦时应当考虑无障碍访问:
- 确保聚焦顺序符合逻辑
- 避免过度使用程序化聚焦
- 为自定义控件提供适当的键盘导航支持
- 使用
aria-live区域通知屏幕阅读器焦点变化
以上方法涵盖了JavaScript中实现元素聚焦的主要技术,可以根据具体需求选择合适的方式。






