У меня figure
с ребенком img
.Изображение большое и показывает поток UX.Я настроил взаимодействие, при котором нажатие на изображение будет увеличивать его в пределах figure
, а использование mousemove
с transform-origin
позволяет перемещаться и просматривать все изображение, и это прекрасно работает.Теперь я делаю презентацию более захватывающей, расширяя этот полноэкранный режим figure
по щелчку, что также работает, но проблема в том, что координаты mousemove
явно изменились, и в тот момент, когда вы перемещаете / перемещаете курсор, изображение скачет /сдвигается при обновлении координат в новый контекст (figure
при его измененных измерениях).
Код и ссылка Fiddle находятся ниже.
Последние попытки
Я попытался динамически вставить новый контейнер для изображения при щелчке, чтобы это было контекстом координат, но mousemove
больше не работал.
Я также пытался настроить состояние .zoomed
для figure
для mousemove
, что также не позволило работать mousemove
.
HTML
<div class="gallery-item-wrap">
<figure class="zoom">
<img src="https://picsum.photos/id/1040/1800/1000">
</figure>
</div>
CSS
body {
margin: 0;
padding: 0;
}
.gallery-item-wrap {
width: 70vw;
margin: 0 auto;
}
figure {
margin: 0;
}
figure img {
width: 100%;
height: auto;
}
figure.zoomed {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 99;
overflow: hidden;
}
figure.zoomed img {
transform: scale(2);
}
jQUERY
$('.zoom').click(function () {
$(this).toggleClass('zoomed');
});
$('.zoom')
.on('mousemove', function(e){
$(this).children('.zoom img').css({'transform-origin': ((e.pageX - $(this).offset().left) / $(this).width()) * 100 + '% ' + ((e.pageY - $(this).offset().top) / $(this).height()) * 100 +'%'});
})
JSFIDDLE
https://jsfiddle.net/iraishere/w1pe7tjm/19/
Как восстановить текстовые координаты при изменении размеров контейнера изображения?