チケット #22103

iscroll 的なものはいったん やめ

登録: 2010-06-05 11:41 最終更新: 2011-09-16 15:25

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
8
重要度:
5 - 中
解決法:
なし
ファイル:
なし

詳細

iscroll/TouchScroll 使って、必要な部分だけスクロールするUIにすることを考えてたが 以下の理由でいろいろ 問題がありすぎるので (なんらか改善する方法がない限り)いったんやめることにしよう。

  • ブラウザ画面自体のスクロールを抑制するために、touch{Start,move}あたりの(いずれかの)イベントがブラウザまでいかないように止めないと(preventDefault() しちゃわないと)いけないわけだが、そうするとブラウザ自体がもってる他の機能(例えば、iPhoneのリンク長押しででるポップアップとか)も一切使えなくなる。
  • 上記とからんでtouchStartを止めてしまうとAndroidだとtouchによるリンククリックが全く動かなくなるという致命的な状況が発生する
  • touchMove で止めようとすると、スクロール開始前後(実装方法というかスクロールアニメーションの開始タイミングによるはずだが、順番が前後するだけで本質的に問題はかわらない)に click イベント相当が発生してしまうため、例えば iscroll だとスクロールが終わったあとの状態でスクロールのためにtouchを開始した位置にリンクが移動してくると勝手にリンクがクリックされたようなことになってしまう。チャネルリストのように「ほぼ全面リンクです」 みたいな画面だともはやまともな操作ができない感じになるし、そうじゃなくても意図しないリンクが唐突にクリックされてしまうので危険極まりない
  • css アニメーションを使ってスクロールっぽく見せているわけだけど、この処理が(iPhone 3GSだとそれなりの速度で動くのだけど)Androidだとどうにもならないくらい遅い(というか、遅いからか処理がすっとばされるので全然スクロールしてるように見えない)。Android 2.2 だとだいぶ改善するようだけど、逆にいうと2.1以下だと機能していないに等しい
  • まぁターゲットがiPhone/Android なのでいいといえばいいんだけど touch* イベントでごちゃごちゃやっているので、touch* イベントをサポートしてないブラウザ(iPhone/Android 以外の多くのブラウザ)ではつかいものにならない。

チケットの履歴 (7 件中 3 件表示)

2010-06-05 11:41 更新者: ishikawa
  • 新しいチケット "iscroll 的なものはいったん やめ" が作成されました
2010-06-05 19:12 更新者: ishikawa
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2010-06-05 19:12 に更新されました
コメント

ということで、オーソドックスな感じのUIに戻した。

2010-06-11 23:58 更新者: ishikawa
コメント

いじったら、ディフォルトのlong tap popup が出せない以外はどうにかなったので やっぱりやめない(わら

2011-09-16 14:07 更新者: None
コメント

突然のコメント、大変失礼いたします。 Google検索経由で、iScrollに関するこちらの書き込みを拝見させていただきました。 言及されている中で、「ディフォルトのlong tap popup が出せない以外はどうにかなったので」とコメントされておりますが、Androidで処理が非常に重たい件も、ある程度は解決されたのでしょうか。。 ただ今非常に困窮しておりまして、もし宜しければ簡単にでもヒントを教えていただけると大変助かります。。

2011-09-16 15:17 更新者: ishikawa
コメント

None への返信

突然のコメント、大変失礼いたします。 Google検索経由で、iScrollに関するこちらの書き込みを拝見させていただきました。 言及されている中で、「ディフォルトのlong tap popup が出せない以外はどうにかなったので」とコメントされておりますが、Androidで処理が非常に重たい件も、ある程度は解決されたのでしょうか。。 ただ今非常に困窮しておりまして、もし宜しければ簡単にでもヒントを教えていただけると大変助かります。。

パフォーマンスに関しては 端末側の問題でどうにもできないので 特に状況はかわってません

2011-09-16 15:25 更新者: ishikawa
コメント

あぁ あとちなみに .keitairc に webkit_newui = 0 と記述しておけば、古い方の iPhone UI が出ます(ただし、こっちは今後メンテナンスされない予定ではありますが...)

2011-09-16 15:35 更新者: None
コメント

返信ありがとうございます! ※Noneでの発言となり、失礼いたしました。 やはり端末のスペック依存ですよね。。Android2.3搭載の比較的新しい機種のシェアが増えることを祈るばかりです。 ご丁寧にコメント頂きまして、有難うございました!

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする