【发布时间】:2016-12-23 13:22:12
【问题描述】:
注意::focus { outline: none } 不应该是答案,因为它还会在使用 Tab 键导航时阻止轮廓
单击按钮不显示轮廓,但按钮变为document.activeElement (JSFiddle)。我想在不点击鼠标的情况下模拟这种行为。
方法应该:
- 将元素设为
document.activeElement。 - 不引起轮廓
- 按键盘 Tab 键时仍然允许大纲
(如果有人问,我目前的意图是聚焦一个模态对话框,并在对话框关闭时将焦点返回到上一个聚焦的元素。这需要防止轮廓无缝体验。)
伪代码:
showDialog();
function whenDialogClosed() {
previouslyFocused.focus(); // should not display outline
}
【问题讨论】:
-
showDialog 用普通的
divs 模拟页面内的模式对话框。 -
这个问题有点混乱,经过短暂的交谈他需要模拟元素的焦点,一个用于主窗口,一个用于模拟弹出窗口!
-
我修改了问题,希望现在更容易理解。
-
当一个元素被聚焦时,你要么显示轮廓,要么不显示。没有两种焦点。如果它让您满意,您可以禁用轮廓,然后在模糊或键下重新启用它,这样如果有人使用标签,它就会显示出来。
标签: javascript html