2016-08-07 2 views
3

Я использую пакет Fabricjs с событиями, чтобы попытаться захватить координаты пользователя при нажатии на холст.FabricJS Canvas Координаты при касании

Это код:

Html

<div id="c-wrapper"> 
     <canvas id="c"></canvas> 
</div> 

Javascript

var canvas = new fabric.Canvas("c"); 
canvas.on({ 
    "mouse:down": function (o) { 
      var pointer = canvas.getPointer(o.e); 
      console.info("Mouse Coords: "+pointer.x+" "+pointer.y); 
    }, 
    "touch:longpress": function (ev) { 
      console.info("Touch Coords: "+ev.self.x+" "+ev.self.y); 
    }, 
}); 

Когда я загрузить страницу в отзывчивым режиме (как Chrome и Safari, а также эмулятор устройства) и тест сенсорная особенность: я получаю координаты, которые невероятно разные.

например.

Console output: 
Canvas of size 2835 x 2004; 

Mouse Coords: 1475 x 1220 
Touch Coords: 470 x 388 

Это очень разные результаты, как вы можете видеть.

Как я могу получить фактические координаты объекта Canvas объекта, когда пользователь делает событие касания longpress?

+0

По крайней мере, вы получаете что-то, я получаю '{x: NaN, y: NaN}' – Exlord

ответ

0

Это даст вам текущее положение.

let e = event.e.touches ? event.e.touches[0] : event.e; 
canvas.getPointer(e) 
Смежные вопросы