2016-01-15 4 views
0

У меня есть интерактивный холст, на котором вы можете нажать на некоторые кнопки. Но когда я тестирую его на мобильном устройстве и пытаюсь нажать на кнопки, он не реагирует немедленно. Я должен нажать и ждать действия.Как предотвратить Canvas действовать как изображение на мобильных устройствах?

тест здесь: http://choix.me/labor/canvas/car.html

здесь Javascript код upBtn:

this.upBtn.addEventListener("mousedown", upClick.bind(this)); 
    this.upBtn.addEventListener("click", upRelease.bind(this)); 

    function upClick() 
    { 
       up = true; 
       speed = 10; 
       forward = 1; 
    } 
    function upRelease() 
    { 
       up = false; 
       speed = 10; 
       forward = 0; 
    } 

ответ

2

Вы используете MouseDown и нажмите событие, ни один из которых являются событие, которые естественным образом поддерживается в мобильном браузере. Они работают, но не так, как они работают на рабочем столе. Галстук в сенсорные события, в частности, touchstart и touchend события

https://developer.mozilla.org/en-US/docs/Web/API/Touch_events

this.upBtn.addEventListener("touchstart", upClick.bind(this)); 
    this.upBtn.addEventListener("touchend", upRelease.bind(this)); 

    function upClick() 
    { 
       up = true; 
       speed = 10; 
       forward = 1; 
    } 
    function upRelease() 
    { 
       up = false; 
       speed = 10; 
       forward = 0; 
    } 

не тестировался кодом, но суть там

+0

Thx, No, это не имеет никакого отношения к этому. Я имею в виду, да, вы должны использовать события касания, но проблема в том, что холст - это изображение, а мобильный браузер пытается сделать «правый щелчок», когда вы касаетесь изображения более 300 мс. Такое поведение я хочу предотвратить. – Suisse

Смежные вопросы