Пожалуйста, подскажите вдогонку один вопрос на ту же тему...
Сделал все на Pointer-events, все стало классно работать, но есть одна неувязка.
Чтобы маскировать системные евенты мобильника (зум и скроллинг), надо выставлять в канвасе touch-action: none; но это, понятно дело не удобно.
Если это не делать, то мобильник через, буквально десятую долю секунды, забирает управление и движение не получается.
У меня движение сделано так
при PointerDown я начинаю движение,
пока нет PointerUp или PointerLeave, я кручу молекулу.
Если не делать touch-action: none; то кручение заканчивается буквально за десятую долю секунды, так как происходит PointerLeave, хотя я не отрываю пальца от экрана, просто мобильник перехватывает управление и начинает скролить.
Я попробовал при PointerDown менять класс в канвасе с touch-action: none; но это не срабатывает.
Я заметил, что когда мобильник перехватывает управление, то он дает PointerLeave и я решил, что на него я не буду выключать touch-action: none; в touch-action: auto;
Такой режим работает существенно интуитивнее, но, все равно, как-то криво.
Понятно можно сделать кнопку, что де - включи кручение, но это вроде совсем как-то не красиво.
Скажите, пожалуйста, можно ли по первому евенту PointerDown как-то так гарантированно поменять класс у канваса с touch-action: auto; на touch-action: none; чтобы мобильник не перехватил свое управление пока я ему не разрешу?
PS: пример, лежит там же, в сорсах эти евенты на 2075-ой строчке.
Спасибо!!!
|