Почему iPad перестает принимать сенсорные события на период после отмененного сенсорного события? (это можно предотвратить?) - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю React SPA. Я тестирую его на iPad (мобильное сафари).

Внизу есть перетаскиваемая полоса прокрутки. Если вы испортите свой жест перетаскивания (начните с сенсорного элемента, но заканчивайте где-нибудь в другом месте sh), то, вероятно, наступит период перезарядки, равный примерно полсекунде, прежде чем iPad примет любые другие сенсорные события (для любых элементов). Каждый раз, когда вы касаетесь в течение этого периода перезарядки, вы, кажется, продлеваете / сбрасываете его. Если вы не понимаете, что происходит, и продолжаете высовываться из этого, веб-сайт выглядит замороженным до тех пор, пока вы не дадите ему отдохнуть.

Вы также можете активировать это поведение, касаясь любого другого достаточно большого элемента (который onClick

Я предполагаю, что это своего рода мера, предотвращающая случайные прикосновения. У кого-нибудь есть какая-либо документация по этому поводу?

Я бы хотел найти способ отключить его для этого веб-приложения.

Возможно, актуально:

  • Я использование onClick для событий касания
  • Я отключил масштабирование в браузере, используя (в приложении есть элементы управления для увеличения):
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, user-scalable=no, maximum-scale=1"
    />
  • Я отключил выбор текста используя:
.no-select {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Old versions of Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently supported by Chrome, Opera and Firefox */
}

...

<div className="App no-select"...

...