2014-10-07 94 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(正常標籤流)以外的任何其他值。