【发布时间】:2016-04-12 20:14:32
【问题描述】:
将焦点更改到不在您的查看区域中的网站的另一个元素(例如,通过按 TAB 键到另一个输入字段)时(例如,您在页面底部,新元素在顶部)所有浏览器(在 Windows 操作系统上测试过的 Internet Explorer、Firefox、Chrome)似乎都可以滚动,以使具有新焦点的元素可见。
例子:
Image
Text
Input text
...
Footer
当您位于Footer 和Image 时,Input text 不在您的查看区域内并且您现在正在按 Tab,因此焦点会跳转到 Input text,此字段现在对您可见但不可见Image 也不是 Text。
虽然这种行为在大多数情况下可能是合适的,但在我的情况下却不是。为了防止这种情况,我建议将焦点元素垂直居中。如何做到这一点?
为了更清楚:
这是整个页面:
我正在向下滚动到底部,所以只有“这是页脚”可见:
我现在通过按 Tab 键来改变焦点。焦点跳转到文本输入。不幸的是,此文本字段上方的元素不可见:
【问题讨论】:
-
理论上的答案(没有功能齐全的javascript)可以吗?
-
@LGSon 我至少需要有人指出我正确的方向。我知道如何调用这个问题,所以我无法寻找解决方案。
-
@Drako:我不想完全阻止这种变化,但新的焦点元素应该垂直居中(它在屏幕的中心,所以它上面的元素也是可见的)。跨度>
-
好的,在我的新评论中尝试更改禁用以更改样式:$(this).css('margin-left', '50%'),工作吗?
标签: javascript html css