2014-10-07 99 views
3

我一直负责创建一个可访问/响应的传送带,并且遇到了关于隐藏元素焦点的Chrome的问题。是否有可能防止隐藏的元素跳入焦点

按照此jsfiddle(http://jsfiddle.net/ft1oosep/);如果你选中,直到隐藏的元素获得焦点,你会看到链接悬挂到视图中,而不更新元素的CSS属性。

对于旋转木马,这会导致问题,因为我需要跟踪旋转木马在任何时间的位置。我试图模糊焦点,但即使这似乎为时已晚。有没有简单的解决这个问题,或者我会开发一些复杂的焦点/标签管理?

在此先感谢

(请,没有任何反应表明旋转木马是一个糟糕的主意......它我已经设定的任务)

示例代码:

<style> 
    body { 
     background-color: #f2f2f2; 
     font-family: 'Arial'; 
     font-size: 13px; 
    } 

    div { 
     width: 200px; 
     height: 200px; 
     overflow: hidden; 
     background-color: #ffffff; 
    } 

    a { 
     width: 200px; 
     height: 200px; 
     text-align: center; 
     background: #A6C6DD; 
     display: block; 
     color: #ffffff; 
     text-decoration: none; 
    } 

    a:last-child { 
     background: #746F9E; 
    } 
</style> 
<p>Pressing tab forces hidden link into view.</p> 
<div> 
    <a href="#">Visible Link</a> 
    <a href="#">Hidden Link</a> 
</div> 
+1

这是一个jsFiddle,而不是一个jsPerf。而且你没有隐藏任何链接,所以我没有看到问题。它恰好是因为溢出而“隐藏”的,对吧?但我觉得你应该真正隐藏它 – Ian 2014-10-07 16:24:49

+0

更新了“jsFiddle”。 是啊你是对的,他们是看不见的(就像在旋转木马之外),但我仍然希望他们可以在标签上访问。然而,与jsfiddle一样,chrome似乎会自动将'out-of-view'元素拖入视图中,而不会对元素css进行任何更改。 – 2014-10-08 10:21:35

回答

0

在第一个链接变得模糊之后添加带js的节点会有帮助吗?因此,当传送带运行时,在标签页之前没有节点。

0

在我的情况,我加了一个动态tabindex属性,这样当其中隐藏的标签,能够要素,它是tabindex="-1"(防止所有的Tab键),并可见当它成为tabindex="0"(制表能够在正常的浏览器制表订购)。

的代码将可能是特定的实例,但在一般情况下,problmatic元素的tabindex属性设置为tabindex="-1"上渲染,然后在使problmatic元素可见集tabindex="0"该元素上的事件,只要它是可见(并返回到tabindex =“ - 1”`,一旦再次隐藏)。

辅助功能注意事项:对于tabindex值,很少应该使用除-1(禁用标签)或0(正常标签流)以外的任何其他值。