3

Android および iOS デバイスには、ダブルクリックをキャプチャするための 300 ミリ秒の遅延が組み込まれています (UX について言えば、Web サイトでそれを使用するのは誰ですか?!)トピックですが、なぜこの単純なコードが「OK」ではないのか、または UX を壊すのか、まだわかりません。

$('a').bind('touchend', function (e) {
    e.preventDefault();
    this.click();
});

私にとっては完璧に機能しているように見えますが、そのようにすべきではない理由があると確信しています。私を正しい方向に向けてくれてありがとう!

4

2 に答える 2

6

この単純なコードは、タッチ (ドラッグ) イベントがリンク上で終了すると、そのリンクでイベント「クリック」をトリガーすることを示しています。ユーザーがページをスクロールするために画面上で指をドラッグし、そのようなドラッグがリンク上で終了すると、リンクが誤ってトリガーされます。それはユーザー エクスペリエンス (UX) を損なうことになります。

遅延を取り除く標準的な方法は、CSStouch-actionプロパティを使用することです。私がこれを書いているとき、Firefox ではデフォルトでまだサポートされておらず (デフォルトでfalse のabout:configフラグがあります)、Safari はまだこれをまったくサポートしていません。MSIE、Chrome、および Android ブラウザーはすべて、すべてのプラットフォームで既にこれをサポートしています。layout.css.touch_action.enabled

要するに:

/* Disable double-click to zoom on links, input fields
   and buttons to improve responsiveness */
a, input, button
{
    touch-action: manipulation;
}
于 2013-11-18T11:20:40.947 に答える