С помощью функции 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) Все движение стало не таким большим (но все же заметно) подергивание при движении после запуска
Можно ли избавиться от обеих проблем?