2014年7月11日金曜日

[不具合対応]iOS hoverの位置がずれる

iOS7.1.2で確認 jQuery Mobileに限ったことではないようですがタップした位置とは違う位置のボタンがhoverとしてハイライトされてしまいます。
jQuery Mobileのlistviewではhoverがついたボタンがたくさんならんでいるためこの問題が分かりやすく出てしまいますが、通常のホームページの場合はあまり問題にならないのではないかと思います。

対応方法はバグ(? 仕様の可能性有り)が修正されるのを待つのが良さそうです。

以下の動画はjQuery Mobileでは擬似的にhoverを実現しているようなので、問題を分かりやすくするためにjsは動作しないようにしてあります。




調査1
aやliにtouchstartをバインドすると問題がおきる。バインドされた関数内では何も実行しなくても問題が起きる。JQMはtouchstartをバインドしているので問題が起きているようです。「touchstartをバインドするとsafariはhoverを有効にする」という記述が他の方のブログににもありました。

調査2
touchstartをバインドするとsafariはclientYとpageYを勘違いしてhover処理を行っているようです。

jQuery,jQuery Mobileは関係ないようですがあまり問題にあがってない所をみるとなんらかの環境依存かもしれません。

0 件のコメント:

コメントを投稿