Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.08.2012, 15:14
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Deff Посмотреть сообщение
cyber,
между старыми координатами мыши от угла overlow и приращением ширины и высоты (*или уменьшением - тогда получецо авто плюс)
а что имеется в виду под старым координатами?
Ответить с цитированием
  #12 (permalink)  
Старый 16.08.2012, 15:16
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
Мну тут прикинул - шо про координаты курсора - не АЙС - ща схему набросаю
Ответить с цитированием
  #13 (permalink)  
Старый 16.08.2012, 15:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Нам нужно фиксировать положение центральной точки (желтое O) относительно центра Окна ( хотя в Гугле - обычно фиксируется положение Пойнтера*выделенной метки, если он есть в текущем окне)



Занчит вычисляешь отступы текущего центра и при зумме увеличиваешь на половину приращения ширины lеft(или высоты для top)

Вычисляем приращение:

widthOld = $("#wrapper").width() /это текущая ширина
widthNew = $("#wrapper").width()*zoom /это будущая

DeltaX
(Приращение по Left) = (widthOld - widthNew)/2 (знак будет автоматический

Итог вставляем в wrapper{"margin-left":""+DeltaX +"px" }

Последний раз редактировалось Deff, 16.08.2012 в 15:39.
Ответить с цитированием
  #14 (permalink)  
Старый 16.08.2012, 17:36
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

хм...
спасибо за подсказку, но у тебя не правильно, потому что ты опеределяеш центр относительно wrapper а в моем случае мне нужно центр относительно внешнего блока overflow.
пытался сделать так но что то все едит в верх
function fixedZoom () {

var zoomY = getHeight / (getHeight - step.height);
var zoomX = getWidth / (getWidth - step.width); 	

	var left = style().left*zoomX;
	var top = style().top*zoomY;
	
	 wrapper.css({
		 top: -top  + 'px',
		 left: -left+'px'
		 		
		 })
	
	}
Ответить с цитированием
  #15 (permalink)  
Старый 16.08.2012, 18:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
Центр должен быть относительно визуального Окна просмотра - а центр wrapper может быть вообще за кадром (при большой ширине и просмотре картинки у левого края (или, наоборот - у края правого)
Ответить с цитированием
  #16 (permalink)  
Старый 16.08.2012, 18:26
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Deff Посмотреть сообщение
cyber,
Центр должен быть относительно визуального Окна просмотра - а центр wrapper может быть вообще за кадром (при большой ширине и просмотре картинки у левого края (или, наоборот - у края правого)
да, но у тебя получается что расчищается центр wrapper
Ответить с цитированием
  #17 (permalink)  
Старый 16.08.2012, 18:33
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вот как работает http://cyberua.16mb.com/files/zoom.html
вот функция
function fixedZoom () {

var zoomY = getHeight /(getHeight - step.height);
var zoomX = getWidth / (getWidth - step.width); 	

	var left = ((getWidth - step.width) - (getWidth * zoomX))/2;
	var top = ((getHeight - step.height) - (getHeight * zoomY))/2;
	
	 wrapper.css({
		 top: top  + 'px',
		 left: left+'px'
		 		
		 })
	
	}
Ответить с цитированием
  #18 (permalink)  
Старый 16.08.2012, 19:32
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

может я зум не правильно рассчитываю?!
Ответить с цитированием
  #19 (permalink)  
Старый 16.08.2012, 19:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
По моему - так
var left = ((getWidth + step.width) - (getWidth * zoomX))/2;
var top = ((getHeight + step.height) - (getHeight * zoomY))/2;

И всё таки тут не left - a margin - left - Движение от зума - лучше делать независимым (для начала

Последний раз редактировалось Deff, 16.08.2012 в 19:43.
Ответить с цитированием
  #20 (permalink)  
Старый 16.08.2012, 19:50
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Deff Посмотреть сообщение
cyber,
По моему - так
var left = ((getWidth + step.width) - (getWidth * zoomX))/2;
var top = ((getHeight + step.height) - (getHeight * zoomY))/2;
почему так?
если getWidth/Height это размеры после увелечения, значит getHeight - step.height это уже старый размер.
Сообщение от Deff Посмотреть сообщение
И всё таки тут не left - a margin - left - Движение от зума - лучше делать независимым (для начала
а как тогда его перемещать если оно будет смещено?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Как сделать? При выходе мышкой за пределы окна браузера, начинает грузится другая стр alb Events/DOM/Window 13 01.09.2010 12:19
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24