Вычисление свойства "object-position" из позиции мыши для <img>со стилем css object-fit: cover - PullRequest
0 голосов
/ 09 марта 2020

У меня есть HTMLImageElement (он же тег img) со свойством object-fit, установленным на cover. object-position позволяет механизму макета выполнять обрезку изображения при изменении соотношения сторон контейнера. Я хотел бы позволить пользователю щелкнуть пиксель на изображении и рассчитать соответствующее свойство object-position так, чтобы последующее кадрирование велось хорошо.

В качестве иллюстрации в приведенном ниже примере пользователь нажимает на левый глаз лица человека на картинке. Оказывается, это соответствует x = 41% и y = 40% относительно изображения.

<img style="width:80vw;height:10vh;object-fit:cover;object-position: 41% 40%;" src="https://i.picsum.photos/id/1027/2848/4272.jpg">
<img style="width:1vw;height:80vh;object-fit:cover;object-position: 41% 40%;" src="https://i.picsum.photos/id/1027/2848/4272.jpg">

https://codepen.io/MountainJack/pen/QWbaddV

Задача заключается в обработчик событий в javascript для преобразования позиции щелчка мыши в относительное свойство object-position. Кажется нетривиальным перепроектировать относительную позицию изображения из абсолютной позиции щелчка мыши, поскольку изображение может отображаться обрезанным во время щелчка мыши.

Есть идеи?

...