Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как сделать img zoom (https://javascript.ru/forum/events/30784-kak-sdelat-img-zoom.html)

Deff 16.08.2012 20:00

cyber,
Ксать я не вижу чобы у тебя серьезно менялся Left - при кручении - колеса походу что то его перебивает

cyber 16.08.2012 20:17

хм...
щас по ишу.
а почему гугл юзает

-webkit-transform: translate(-552px, -64px) scale(1);

а не top/left || margin ?

Deff 16.08.2012 20:20

cyber,
Потому шо удобно разделять

Я ж говорил про маргин и Lеft

Он наверняка left делает по сдвигу карты а по зумм - это
Наверно есть еще и третий вариант сдвига

cyber 16.08.2012 20:33

у гугла при зуме загружается новая картинка.так что у них меняется только
-webkit-transform: translate()

cyber 16.08.2012 20:34

самое странное что у точки не меняются координаты при зуме

Deff 16.08.2012 20:53

cyber,
Еще раз
1. зум - отношение текущей ширины - к изначальной (константе)
2. Выведи алертом (getWidth * zoomX))/2;
Delta X = ($("#wrapper").width() - $("#wrapper").width()*zoom)/2

Эту Дельту(c её знаком) нун добавлять к текущему значению Left

vadim5june 16.08.2012 21:07

Цитата:

Сообщение от cyber (Сообщение 198094)
у гугла при зуме загружается новая картинка.так что у них меняется только
-webkit-transform: translate()

значит у них на сервере все делается

cyber 16.08.2012 23:55

Цитата:

Сообщение от vadim5june (Сообщение 198101)
значит у них на сервере все делается

что делается на сервере, хоть поняли что сказали?

cyber 17.08.2012 00:54

Цитата:

Сообщение от Deff (Сообщение 198099)
cyber,
Еще раз
1. зум - отношение текущей ширины - к изначальной (константе)
2. Выведи алертом (getWidth * zoomX))/2;
Delta X = ($("#wrapper").width() - $("#wrapper").width()*zoom)/2

Эту Дельту(c её знаком) нун добавлять к текущему значению Left

зделал так
function fixedZoom () {

var zoomY = getHeight / height;
var zoomX = getWidth / width; 	

var left = ((getWidth - step.width) - (getWidth * zoomX))/2;
var top = ((getHeight - step.height) - (getHeight * zoomY))/2;
	
	 wrapper.css({
		 top: style().top + top  + 'px',
		 left: style().left+ left+'px'
		 		
		 })
	
	}

вот результат
http://cyberua.16mb.com/files/zoom.html
теперь сильно уежает

Цитата:

2. Выведи алертом (getWidth * zoomX))/2;
вывел в консоль

cyber 17.08.2012 01:19

Цитата:

1. зум - отношение текущей ширины - к изначальной (константе)
а почему к изначальной?
если расчитуем относительно предыдущей?
значит и зум нужно относительно предыдущей ширины


Часовой пояс GMT +3, время: 00:46.