想象一下:
<div>
<input tabindex="1">
</div>
<div style="display:none">
<input tabindex="2">
</div>
<div>
<input tabindex="3">
</div>
现在我试图浏览所有这些输入字段,但他没有踩到tabindex 2.逻辑上这不起作用,但是当他在tabindex 1上时我该如何实现它并且应该去到tabindex 2 div是否可见?。
由于
答案 0 :(得分:7)
如评论中所述,请让div
拥有opacity: 0
。当您专注于隐藏的输入时,可以将其设为opacity: 1
。类似的东西:
<div>
<input tabindex="1"/>
</div>
<div style="opacity: 0">
<input tabindex="2"/>
</div>
<div>
<input tabindex="3"/>
</div>
JS:
$('div:eq(1) input').on('focus', function() {
$(this).parent().css('opacity','1');
}).on('blur', function() {
$(this).parent().css('opacity','0');
});
或者您可以使用height
(height: 0
/ height: auto
)执行某些操作:
但是从用户体验的角度来看,如果你不想要一个额外的input
弹出窗口会很奇怪。
答案 1 :(得分:0)
我对这里给出的建议有疑问,而是决定使用left: -999px; position: absolute;
只是将鼠标悬停在鼠标悬停或键盘导航上(使用tabindex)。
只需说基本上height:0
并不总是有效,在那种情况下,极端translate: transformX(-999)
或更简单的left: -999px
与position: absolute
也可以工作。