Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.01.2021, 21:17
Аспирант
Отправить личное сообщение для Biotoxsin Посмотреть профиль Найти все сообщения от Biotoxsin
 
Регистрация: 11.04.2019
Сообщений: 74

Pointerleave причина срабатывания
Здравствуйте!

Во время перемещения в версии с тачпадом хотел отслеживать pointermove, но событие move прерывается после 5-9 вызовов и вызывается событие leave. Не могу понять почему так? Может кто-то подсказать.

Если нужен код:
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
    <script type="text/javascript" src="jquery.min.js"></script>
  </head>
  <body style="height: 100vh; width: 100vw; background: #000">
    <script type="text/javascript">
      $('body').on('pointerleave', (e) => {
        console.log('leave');
      })
      $('body').on('pointermove', (e) => {
        console.log('move');
      })
    </script>
  </body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2021, 21:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Biotoxsin,
может прокрутка
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2021, 21:45
Аспирант
Отправить личное сообщение для Biotoxsin Посмотреть профиль Найти все сообщения от Biotoxsin
 
Регистрация: 11.04.2019
Сообщений: 74

Сообщение от рони Посмотреть сообщение
Biotoxsin,
может прокрутка
Нет. Меняем размер на 95, убирая тем самым прокрутку. И всё по прежнему.
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2021, 00:32
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от Biotoxsin
Во время перемещения в версии с тачпадом
С тачпадом или, все-таки, с тачскрином?
С тачскрином такое происходит, т.к. вначале перед pointerleave возникает событие pointercancel.
Это стандартная последовательность событий pointercancel - pointerleave перед тем, как браузер прекращает пользовательскую обработку движений по тачскрин.
А событие pointercancel возникает, потому, что браузер берет на себя обработку движений пальцев, думая, что это какие то стандартные жесты, например, скроллинг или зумирование.
Что бы он так не думал, нужно использовать стиль touch-action
https://developer.mozilla.org/ru/doc...S/touch-action

Попробуйте так
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
    <script type="text/javascript" src="jquery.min.js"></script>
  </head>
  <body style="height: 100vh; width: 100vw; background: #000; touch-action: none;">
    <script type="text/javascript">
      $('body').on('pointerleave', (e) => {
        console.log('leave');
      })
      $('body').on('pointermove', (e) => {
        console.log('move');
      })
    </script>
  </body>
</html>

Последний раз редактировалось voraa, 09.01.2021 в 11:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем причина ошибки? borus Общие вопросы Javascript 2 09.04.2018 09:46
animate не работает после срабатывания DOM skillful jQuery 2 24.06.2014 20:51
onchange причина возникновения? assan Общие вопросы Javascript 7 10.12.2011 12:34
Порядок срабатывания событий DrStrangelove Javascript под браузер 6 04.08.2011 02:46
Отмена срабатывания некоторых стандартных hotkey Anatoly Firefox/Mozilla 3 24.01.2011 12:04