Движение фотографии внутри блока

Evgeniya

Новичок
Здравствуйте! На странице следующая структура: слева большой блок, а справа маленькие блоки с превью изображения. При клике на превью изображение исходного размера появляется в большом блоке слева. В этом блоке мы видим только часть изображения, а остальную часть можем смотреть, когда водим курсором внутри блока.
Вот код, который ловит событие .mousemove() и выполняет действия

$("#big_photo").mousemove(function(e) {
var offset = $(this).offset();
var relativeX = (e.pageX - offset.left);
var relativeY = (e.pageY - offset.top);

$("#big_photo img").css({"position":"relative","left":"-"+relativeX+"px","top":"-"+relativeY+"px"});
});

Все работает, но, когда я дохожу курсором до края блока, то я не вижу конец изображения. Оно показывается не полностью. В выражении с подсчетом координат мне нужно еще учитывать координаты самого изображения, но записать правильно у меня не получается. Если есть у кого идеи, скажите, пожалуйста. Буду благодарна! =)
 

Evgeniya

Новичок
Я переформулировала вопрос немного. Решила, что правильнее новую тему создать.
 

Evgeniya

Новичок
У меня не выходит правильно высчитать координаты. Буду признательна, если поможите.
 

Evgeniya

Новичок
Водим внутри блока, где исходное изображение загружено. Не превью.

А начальная позиция изображения совпадает с позицией блока относительно экрана. То есть левый верхний угол изображения находится в левом верхнем углу экрана.
 

Gremboloid

инженера Гр...
высота * ширина блока X*Y
высота * ширина картинки M*N

Коэфициент смещения по горизонтали coeffX = M/X
Коэфициент смещения по coeffY = N/Y

При смещении курсора в блоке с исходным изображением на 1 пиксель смещение изображения составит:
по горизонтале = 1 * coeffX
по вертикале = 1 * coeffY

В соответствие с коэффициентами надо высчитывать (relativeX relativeY)
Так же нужно добавить условия проверки что картинка может хотя бы одним краем полностью помещается в блоке с исходным изображением, а так же чтобы смещение не превышало размер картинки
 
Сверху