Intereting Posts
Android: как сделать кликабельное изображение карты с каждой страной, производя другое действие? Размытые изображения SVG в хром для Android Как обрабатывать запросы на разрешение за пределами действия и фрагмента? Является ли RelativeLayout более дорогим, чем LinearLayout? Аутентификация Dropbox оставляет открытый браузер Обновляет ли уведомление уведомление о статусе переднего плана службы? Android как вращать холст rect Android: как установить событие onClick для кнопки в элементе списка в ListView Альтернативы эмулятору avroid avd TextView с цветом фона только на самом тексте Loader и LoaderManager – как определить, активен ли текущий загрузчик и работает ли он? Json для сопоставления POJO в Android Проверьте, поддерживает ли устройство Android 4K видео? Ошибка при запуске приложения: Instant Run требует «Инструменты | Android | Включить интеграцию ADB '. С Android GCM вы можете использовать глубокое поле данных JSON?

Экран остановки событий браузера Android обновляется вкл. Холст / элементы – Как работать?

В каком- то браузере какого-либо браузера Android, касающемся страницы, кажется, что дисплей не обновляется до тех пор, пока не будет отпущен палец. Это происходит как для анимации на основе элемента html (классы переключения), так и для анимации на холсте. Однако он не останавливает нормальное выполнение js, а другие события запускаются как обычно. На устройствах с этой проблемой также выглядит эффект браузера дельфинов (но не firefox).

Touchstart / move оба имеют preventDefault (), а также stopPropergation (), cancelBubble = true; И e.returnValue = false ;. В выборе веб-кита CSS также отключен. Страница не будет прокручиваться.

Здесь задан аналогичный вопрос: блокирует ли Android-браузер DOM на touchStart?

Но я хотел бы узнать, можно ли преодолеть это поведение или, по крайней мере, выяснить, какие устройства будут устранены этой проблемой, является ли проблема с устройством или версией Android? Если вы не можете ответить на вопрос о запуске демонстрационной версии и сообщить свой опыт вместе с моделью вашего устройства и useragent (отображается внизу демонстрационной страницы), в качестве комментария может помочь другим или мне самому ответить на вопрос.

Вот демонстрация и шаги по воспроизведению поведения. QR-код для ссылки можно найти здесь https://s3-eu-west-1.amazonaws.com/canvas-test-pd/tmp.png .

https://s3-eu-west-1.amazonaws.com/canvas-test-pd/index.html

На веб-странице есть холст наверху и div с фоновым изображением внизу. Каждую секунду холст очищается и отображается другое изображение, а div имеет класс переключения (оба переключаются между 0 и 1 png). Как только это несколько раз поместит палец на холст (верхний серый ящик) и удерживайте его там. Дождитесь, продолжит ли анимация (иногда она будет один или два раза остановлена), и если есть какие-либо визуальные искажения.

Обновление Кажется, что вкладка Galaxy Tab 3.2 требует обработчиков для touchstart / end документа, а не только требуемых div для экрана для продолжения обновления дисплея. Спасибо jimpic.

Я начинаю верить, что это проблема, вызванная шкурами производителей, хотя это трудно доказать.

Solutions Collecting From Web of "Экран остановки событий браузера Android обновляется вкл. Холст / элементы – Как работать?"

Я не могу сказать вам, почему это происходит, но я столкнулся с подобной проблемой, когда регистрируюсь для событий касания документов. Когда я регистрировался только для событий касания, у меня была точно такая же проблема, с которой вы столкнулись, однако, когда я зарегистрировался и для touchstart, это внезапно сработало. В вашем случае просто добавьте следующие строки в свой main.js

function touchHandlerDummy(e) { e.preventDefault(); return false; } document.addEventListener("touchstart", touchHandlerDummy, false); document.addEventListener("touchmove", touchHandlerDummy, false); document.addEventListener("touchend", touchHandlerDummy, false); 

Работает на моей вкладке Galaxy. Надеюсь, это то, что вы пытались сделать.

У меня была такая же проблема. Как ни странно, проблема исчезла полностью, когда я добавил следующую строку в раздел <header> :

 <meta name="viewport" content="width=device-width"> 

Ответы здесь мне очень помогли.

Мое решение – это просто сочетание того, что было упомянуто здесь, поэтому, если вы хотите:
1. «Перетаскивание» на родном браузере Samsung Galaxy S2 (Android 4.1.2)
2. отключить пользователя, масштабируя страницу (в окне просмотра нет масштабирования)

 <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.01"> <script> window.addEventListener("load", function() { function onTouchPreventDefault(event) { event.preventDefault(); }; document.addEventListener("touchmove", onTouchPreventDefault, false); document.addEventListener("touchstart", onTouchPreventDefault, false); }, false); </script> </head> 
  1. Viewport
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.01">

    • К сожалению, пользователь все еще может немного увеличить страницу, 1.01 – это наименьшее значение, которое делает работу
  2. Отключить пинч для увеличения
    document.addEventListener("touchmove", function (event) { event.preventDefault(); }, false);

    • Это отключает щепотку для увеличения
  3. Отключить двойное нажатие для увеличения
    document.addEventListener("touchstart", function (event) { event.preventDefault(); }, false); //OR document.addEventListener("touchend", function (event) { event.preventDefault(); }, false);

    • Это отключает двойное нажатие для увеличения, вы можете выбрать, хотите ли вы использовать touchstart или touchhend (или оба) для этой purpouse

Это сделает трюк 🙂

Function touchHandlerDummy (e) {e.preventDefault (); Return false; } Document.addEventListener («touchmove», touchHandlerDummy, false);