Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   оптимизация drag and drop (https://javascript.ru/forum/events/31024-optimizaciya-drag-drop.html)

Deff 28.08.2012 23:03

cyber,
Ссыль есть ?

cyber 28.08.2012 23:14

будет через 10 мин=)
лишнее по удаляю из кода и залью

cyber 29.08.2012 00:31

я только одного не могу понять, изначально я то на js делал и оно под лагивало, а теперь нет, я только одну функцию менял (в общем не одну , но когда удалил все что связано с css3 получилось 1),
function MoveWrapper() {

var timeout = true;	

return function (e) {
	
 if(!timeout || !move) return;
 
  timeout = false;
  
 window.requestAnimationFrame(function () {
	 
  MouseMove(e) 	 
  timeout = true;	 
	 
	 });
	 
}	  
}

вот ссылка http://cyberua.16mb.com/files/

Deff 29.08.2012 08:46

cyber, , Круть!!

Сушай - cyber, - Запрети скролл боди и zoom cтраницы при нахождении курсора во wrapperе иначе передвигается при малых размерах картинки и сама страница

cyber 29.08.2012 10:53

Цитата:

Сообщение от Deff (Сообщение 201318)
cyber, , Круть!!

Сушай - cyber, - Запрети скролл боди и zoom cтраницы при нахождении курсора во wrapperе иначе передвигается при малых размерах картинки и сама страница

эм... я об этом подумал, когда спать ложился, читаеш мои мысли?=):victory:

cyber 30.08.2012 18:27

Deff,опять проблемы с точками
делаю вот так
function setNewPosition (zoom) {
	
points.each(function(index, element) {
 
  var left = parseInt($(this).css('left'));
  var top = parseInt($(this).css('top'));

  if (zoom) {
   left *= scale;
   top *=scale;
  } else {
	left /= scale;
   top /=scale;  
	  
	}
  
   $(this).css({
	  left: left +'px',
	  top: top +'px'  
	 }); 
	 
});
		
	
}

scale константа задаваемая юзером , это зум проще говоря но точки летают жестоко далеко=)

cyber 30.08.2012 20:26

вот http://cyberua.16mb.com/files/
переделал но точки смещают на не большее растояние не понятно почему

Deff 30.08.2012 20:33

cyber,
Классно

а чо за функция поддержания координат точек ?

там тож нужно начальное неизменяемые координаты - зуммить

Т.е обычно если зуммить не начальные - то нарастает ошибка зума

Походу при минимальном масштабе - ти выкидываешь начальные координаты пойнтеров(их нун помнить постоянно) и множить а зумм, (если скатываться несколько раз в минимум масштаба, точки, потихонечку_ съезжают вниз и вправо (браузер - Опера

cyber 30.08.2012 20:38

function setNewPosition (zoom, width, height) {

points.each(function(index, element) {
 
  var left = parseInt($(this).css('left'));
  var top = parseInt($(this).css('top'));

  if (zoom) {
   left *= width / zooming.width();
   top *= height / zooming.height();
  } else {
	left /= zooming.width() / width;
   top /= zooming.height() / height;  
	  
	}
	 
   $(this).css({
	  left: Math.round(left) +'px',
	  top: Math.round(top) +'px'  
	 }); 
	 
});
		
	
}

щас попробую с начальными

Deff 30.08.2012 20:56

Цитата:

var left = parseInt($(this).css('left'));
var top = parseInt($(this).css('top'));
cyber, Воть эти фенька имхо должна быть запоминаемой константой(после установки пойнтера), приведенной к максимальному масштабу ( а не считывацо каждый раз повторно, ток нужно тогда множить не текущий зум относительный - а на итоговый(по отношению к максимальной картинке


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