Как реализовать более плавное панорамирование экрана с помощью Fabri c JS - PullRequest
0 голосов
/ 25 февраля 2020

С помощью функции Fabri c JS canvas.relativePan () я могу осуществлять панорамирование экрана так, как я это делал в скрипте: https://jsfiddle.net/Vitozz_RDX/01xej9hc/55/

document.getElementById('canvasContainer').addEventListener("keydown", function(options) {       

    var units = 10

    if (options.keyCode == 65) {                           

        var delta = new fabric.Point(units,0) ;  

        canvas.relativePan(delta)
   }
   if (options.keyCode == 83) {               
        var delta = new fabric.Point(0,units) ;  

        canvas.relativePan(delta)
   }
   if (options.keyCode == 68) { 

        var delta = new fabric.Point(-units,0) ;  //{ x: 10, y: 0 }

        canvas.relativePan(delta)
   }
        if (options.keyCode == 87) {        

        var delta = new fabric.Point(0,-units) ;  //{ x: 10, y: 0 }

        canvas.relativePan(delta)
   }
});

canvas.add(circle) ;

Когда Я нажимаю любую (WASD) кнопку, которую я не отпущу, пока зеленый круг не достигнет края Canvas el.

Из-за использования событий клавиатуры у моего решения возникла проблема - подергивание:

1) Начальное отставание - например, когда я сначала нажимаю кнопку «Влево», зеленый круг начинает движение, затем наступает пауза, и только через мгновение фигура продолжает свое движение

2) Все движение стало не таким большим (но все же заметно) подергивание при движении после запуска

Можно ли избавиться от обеих проблем?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...