Androidでjqueryプラグインfancyboxを使ってうなされた


androidでjqueryプラグインであるfancyboxを使ったときにうなされたことを少々。

モーダルウインドウを出す→なぜか画面をタップすると下にあるテキストボックスなどにフォーカスが当たる(実際に選択はされない。フォーカス時の色がつく)

原因はAndroidブラウザのz-indexのバグらしいのですが、これの解決はこちらこちらで紹介されています。要は裏の入力フォームをdisabledにしましょうということ。色をつけないという方法もありますが、私はdisabledを使わせていただきました。情報ありがとうございます。

さて、これで無事に訳のわからないフォーカスができなくなったわけですが、それで終わりませんでした。

次はそのモーダルウインドウを閉じると、元画面にあったselectタグが選択できなるという事態、、、

disabledの影響かと思ったのですが、どうやらそれではなさそうで、disabledを外しても選択はされない。

ブラウザをガチャガチャいじっていると発見!閉じた後に少しでもスクロールさせると、なんとselectタグが選択できることがわかりました。

ということで閉じたら1px動かします。onClosedで以下を記述


var pos = $("html, body"),offset();

$("html,body").animate({scrollTop: pos.top -1 ,scrollLeft:pos.left - 1});

しかしまだまだ余談は許しません

yagi