2015-08-21 59 views
2

我最近做了一個(響應)重新設計我的網站。ios safari奇怪的雙擊/懸停behviour

奇怪的是有一些地方,其每一個測試錯過了鏈接的一個奇怪的行爲(因爲他們認爲他們已經錯過了我想象中的鏈接):

如果你點擊這些鏈接,他們只得到「激活」 - - 但他們沒有遵守。如果你再次點擊它們,那麼它們工作正常。

如果您單擊連續說出7個鏈接,然後再點擊第一個鏈接,這甚至會起作用。

這隻發生在ios 8.x上(測試在8.4.1上),但不是在7.x上,而不是在android或任何桌面瀏覽器上。

隨着遠程調試,我什麼都看不到。

我甚至不知道從哪裏開始調試這...

影響可以看出(與8.x的iPhone)的位置:在上市產品http://www.plamundo.de

回答

2

我已經看到了相同的行爲,但只有8.4.1不與8.4。這似乎也是您的網站上的情況。 8.4.1設備需要雙擊,8.4只需要一個水龍頭。這是我構建的最小測試用例:

<html> 
<head> 
    <title>Minimal testcase iOS 8.4.1 hover double tap problem</title> 
    <style> 
     body { font-size: 2em; } /* Only needed for a readable font-size */ 
     a { display: block; font-decoration: none;} 
     a:hover { font-decoration: underline; } 
    </style> 
</head> 
<body> 
<a href="http://www.apple.com/" >Click me</a> 

</body> 
</html> 

我們通過使'a:hover'有條件解決了這個問題。您可以使用媒體查詢(但如果您想要定位iPad則很難),或者使用一些JavaScript添加可用於選擇CSS的類。例如:

if (!("ontouchstart" in document.documentElement)) { 
    document.documentElement.className += " no-touch"; 
} 

有:

.iamanobnoxiousiphonedevice *:hover{ 
    text-decoration: inherit !important; 
} 

來解決這方面的一個更簡單的方法是移除「顯示:塊」,但我不知道這是一個選擇。

+0

非常感謝。我想我會把所有懸停的東西扔出去。至少在蘋果得到這個修復之前。 – Scheintod

0

一個奇怪的把戲的解決方案,在一個項目我工作的工作原理是重置的z-index:

* { z-index: 0 } 

發現,在一個Angular google group

我懷疑黑客瑞安歐(THX)它可能是我們網站上的Adobe Analytics「竊取」一些點擊。在嘗試將焦點放在文本字段並在點擊後顯示鍵盤時,也因爲Adobe而出現問題。他們抓到了最初的點擊,這樣我們就變成了合成,並受到iOS的限制。