Javascript.RU

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

как сделать img zoom
делаю зум как тут http://rvolve.com/zoom_pic.php, только там на канве, а у меня нет.Так вот делаю так:
function fixedZoom (x,y) {

var top = getHeight / height;//zoom
var left = getWidth / width; 	//zoom

var centerX = elem.width()/2;//центр по Х
var centerY = elem.height()/2;//центр по Y

x = x - coord_elem.left;//координаты мыши относительно блока по X
y = y - coord_elem.top;//координаты мыши относительно блока по Y

x = centerX - x;
y = centerY - y;
console.log(x*left)	 
	 
	 wrapper.css({
		 top: style().top + y*top + 'px',
		 left: style().left + x*left+'px'
		 		
		 })
	
	}


только увелечение не по клику а колесиком
но что как то не так работает http://cyberua.16mb.com/files/zoom.html.
что делаю нет так?
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2012, 19:53
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
При зуме нужно фиксировать текущую координату мыши от лево - и верха Окна Самой внешней обертки overlow
Поэтому расчитываете координаты и относительно wrapper и обертки overlow, - и wrapper cдвигаете - top и -left на величину разницу - между старыми координатами мыши от угла overlow и приращением ширины и высоты (*или уменьшением - тогда получецо авто плюс)

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

раз 3 прочитал и не совсем понял
Цитата:
координату мыши от лево - право
т.е отступ с лева - отступ с права?

чет я как то запутался=(
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2012, 21:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cyber,
Координаты мыши от лева и тоp (cоррь
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2012, 22:17
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Deff Посмотреть сообщение
cyber,
При зуме нужно фиксировать текущую координату мыши от лево - и верха Окна Самой внешней обертки overlow
Поэтому расчитываете координаты и относительно wrapper и обертки overlow, - и wrapper cдвигаете - top и -left на величину разницу - между старыми координатами мыши от угла overlow и приращением ширины и высоты (*или уменьшением - тогда получецо авто плюс)
блин, я наверно запутался но я вроде так и делаю=(
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2012, 22:36
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Deff Посмотреть сообщение
cyber,
а
Поэтому расчитываете координаты и относительно wrapper
т.е top , left?
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2012, 22:39
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

т.е top , left - Да
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2012, 23:49
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

function fixedZoom (x,y) {

var top = getHeight / height;//zoom
var left = getWidth / width; 	//zoom

var centerX = elem.width()/2;//центр по Х
var centerY = elem.height()/2;//центр по Y

x = x - coord_elem.left;//координаты мыши относительно блока по X
y = y - coord_elem.top;//координаты мыши относительно блока по Y

x = centerX - x;
y = centerY - y;
console.log(x*left)	 
	 
	 wrapper.css({
		 top: style().top + y*top + 'px',
		 left: style().left + x*left+'px'
		 		
		 })
	
	}

style().left/top
это значение left/top для wrapper
y/x координаты курсора
я твой алгоритм вроде частично понял (как то запутано написано), но не пойму что именно у меня не так
Ответить с цитированием
  #9 (permalink)  
Старый 16.08.2012, 00:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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

да сам засыпаю,спокойной ночи)))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше сделать виджет? 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