iPhone6でリンクをタップしても開かないのはiOS8.4.1が原因でした

Sponsored Link

何気なく普段使っているiPhone6でサイトチェックしていたら、リンクをタップしても画面遷移が起こらず焦りましたよ。

調査してみると、iOS8.4.1が原因のようで、どうやら「一回のタップでは認識されず、2回タップして初めてリンク先に飛ぶことができるという症状」が発生している状況。

ただ全てのリンクを2回タップしないと開けないわけではないので、挙動がおかしい状況を調べていたら、一つの原因が分かりました。

発生原因

:hover擬似クラスにopacityプロパティを使って1未満の数値で透明度を指定している。

▼つまりこんな状況です。

<a href="/case"><img src="images/bn_case.jpg"></a>
a:hover {
  opacity: 0.7;
}

対処方法

そもそもスマホにhoverの設定は必要ないので、メディアクエリを使ってopacityの値を1にするか、次のようにhover時の透明度はjavascriptを使って対処しました。

<script async type="text/javascript">
$(function() {
    var images = $("img");
    for(var i=0; i < images.size(); i++) {
        if(images.eq(i).attr("src").match("bn_.")) {
            $("img").eq(i).hover(function() {
                $(this).fadeTo("slow", 0.5);
            }, function() {
                $(this).fadeTo('slow', '1');
            });
        }
    }
});
</script>

■さいごに

今回の問題はSafariだけではなくChromeでも同様の症状が起こります。一時的な不具合ならばアップデートでの解消を待てばいいですが、仮にAppleが意図的に行った仕様だとしたら・・・

サイトのスマホ対応は必須になりつつあると感じますね。

関連記事

福岡のウェブデザイン事務所「ハブワークス」

HP作成・リニューアルは福岡のハブワークスまでお気軽にお問い合わせください。ウェブサイト公開後の修正・更新もお任せください。フリーランスだからできるリーズナブルな料金設定でサービスをご提供いたします。