Я пишу сценарий с Fabric.js для увеличения изображения в текущей позиции мыши. Я сделал некоторый прогресс, но где-то есть ошибка.Изображение сфокусировано по положению мыши
Дело 1: Держите мышь в одной точке и увеличивайте с помощью колеса мыши.
Результат: Работает отлично, масштабирование изображения в этом конкретном пикселе.
Корпус 2: Увеличьте немного места в одном положении (3-5 раз с помощью колеса мыши), затем переместите мышь в новое положение и увеличьте масштаб.
Результат: Прекрасно работает для первой точки, но после перехода к другой точке и масштабирования позиция изображения неверна.
Мой код находится в этой скрипкой:
https://jsfiddle.net/gauravsoni/y3w0yx2m/1/
Я подозреваю, что что-то не так с логикой позиционирования изображения:
imgInstance.set({top:imgInstance.getTop()-newMousY,left:imgInstance.getLeft()-newMousX});
Что происходит не так?
Почему бы не использовать функцию масштабирования и панорамирования холста? или вам нужно масштабировать только объект изображения и ничего больше? Проверьте это: http: // fabricjs.com/kitchensink/# zoom (используйте прокрутку для увеличения) Использование масштабирования холста позволит вам увеличить масштаб объекта на холсте при необходимости без выполнения вычислений. Я могу сделать скрипку, если вы захотите изучить эту возможность. – AndreaBogazzi
@AndreaBogazzi Мне нужно увеличить в том конкретном положении, где находится мышь, функция масштабирования холста просто масштабирует изображение. –
Да, я говорю о панораме FABRICJS для точечной и масштабируемой функции. Не холст. Я вижу, что для этого вы используете fabricjs. – AndreaBogazzi