Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 27.07.2012, 21:36
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

в исходном примере с 8 по 15 строку замените тем, что я написал
Ответить с цитированием
  #22 (permalink)  
Старый 27.07.2012, 21:45
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

в этом фрагменте теперь проблем нет, теперь проблемы в другом месте =(
Ответить с цитированием
  #23 (permalink)  
Старый 27.07.2012, 21:47
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

а теперь дорабатывайте e = e || event
Ответить с цитированием
  #24 (permalink)  
Старый 27.07.2012, 21:48
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

сейчас проблема тут в строке 1-3 "Требуется объект"
var book = document.getElementById(bookId).offsetLeft;
			if(move == 1)
			{
				if(tmp == 1)
				{
					var i = book;
					if(book - shelf.offsetLeft + 5 >= div.offsetWidth + 20)
						var j = book - div.offsetWidth + 20;
					else
					{
						if(book - shelf.offsetLeft + 5 < div.offsetWidth + 20)
							var j = shelf.offsetLeft + 4;
					}
				}
				else
				{
					if(tmp == 2)
					{
						var i = book;
						if(shelf.offsetLeft + shelf.offsetWidth - book - 5 >= div.offsetWidth + 20)
							var j = book + div.offsetWidth - 20;
						else
						{
							if(shelf.offsetLeft + shelf.offsetWidth - book - 5 < div.offsetWidth + 20)
								var j = shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4;
						}
					}
				}
				if(j > shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4)
					j = shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4;
				t1A = new Tween(document.getElementById(bookId).style,'left',Tween.strongEaseOut,i,j,0.5,'px');
				t1A.start();
				tmp = 0;
				move = 0;
			}
		}
	}
}
Ответить с цитированием
  #25 (permalink)  
Старый 27.07.2012, 21:55
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Были только книги, теперь шкафы полки подключились
PS: при отсутствии полного кода примера смотреть не айс

Последний раз редактировалось bes, 27.07.2012 в 22:10.
Ответить с цитированием
  #26 (permalink)  
Старый 27.07.2012, 21:58
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

у меня книжная полка, по которой я двигаю книги(дивы)
сейчас напишу полный код функции, он просто довольно длинный
Ответить с цитированием
  #27 (permalink)  
Старый 27.07.2012, 22:00
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

function move(div) 
{
	document.onmousedown = function() {return false}
	div.style.cursor = 'move';
	document.onmousemove = function(e)
	{
		e=e||window.event;
		if(e.pageX == null) 
		{ 
    			var html = document.documentElement
    			var body = document.body

    			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
		}
		x = e.pageX;
		left = div.offsetLeft;
		left = x - left;
		var shelf = document.getElementById('shelf');
		var slide = div.offsetWidth / 2;
		var id = 0;
		var bookId;
		var tmp = 0;
		var move = 0;
		document.onmousemove = function(e)
		{
			e=e||window.event;
			if(e.pageX == null) 
			{ 
    				var html = document.documentElement
    				var body = document.body

    				e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
			}
			div.style.zIndex = 100;
			x = e.pageX;
			div.style.left = x - left + 'px';
			toolTip(0);
			var book1 = document.getElementById('book1').offsetLeft;
			var book2 = document.getElementById('book2').offsetLeft;
			var book3 = document.getElementById('book3').offsetLeft;
			var book4 = document.getElementById('book4').offsetLeft;
			if(div.offsetLeft <= shelf.offsetLeft + 5)
				div.style.left = shelf.offsetLeft + 5 + 'px';
				
			if(div.offsetLeft + div.offsetWidth >= shelf.offsetLeft + shelf.offsetWidth - 5)
				div.style.left = shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 5 + 'px';
//book1////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			if(div.offsetLeft + slide > book1 + slide && div.offsetLeft + slide < book1 + slide + 5) tmp = 1;
			
			if(div.offsetLeft + slide < book1 + slide && div.offsetLeft + slide > book1 + slide - 5) tmp = 2;
					
			if(div.offsetLeft + slide > book1 + slide + 5 && div.offsetLeft + slide < book1 + slide + 10 && tmp == 1)
			{id = 1; bookId = 'book'+id; move = 1;}
				
			if(div.offsetLeft + slide < book1 + slide - 5 && div.offsetLeft + slide > book1 + slide - 10 && tmp == 2)
			{id = 1; bookId = 'book'+id; move = 1;}
//book2////////////////////////////////////////////////////////////////////////////////////////////////////////////////			
			if(div.offsetLeft + slide > book2 + slide && div.offsetLeft + slide < book2 + slide + 5) tmp = 1;
			
			if(div.offsetLeft + slide < book2 + slide && div.offsetLeft + slide > book2 + slide - 5) tmp = 2;
					
			if(div.offsetLeft + slide > book2 + slide + 5 && div.offsetLeft + slide < book2 + slide + 10 && tmp == 1)
			{id = 2; bookId = 'book'+id; move = 1;}
				
			if(div.offsetLeft + slide < book2 + slide - 5 && div.offsetLeft + slide > book2 + slide - 10 && tmp == 2)
			{id = 2; bookId = 'book'+id; move = 1;}
//book3////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			if(div.offsetLeft + slide > book3 + slide && div.offsetLeft + slide < book3 + slide + 5) tmp = 1;
			
			if(div.offsetLeft + slide < book3 + slide && div.offsetLeft + slide > book3 + slide - 5) tmp = 2;
					
			if(div.offsetLeft + slide > book3 + slide + 5 && div.offsetLeft + slide < book3 + slide + 10 && tmp == 1)
			{id = 3; bookId = 'book'+id; move = 1;}
				
			if(div.offsetLeft + slide < book3 + slide - 5 && div.offsetLeft + slide > book3 + slide - 10 && tmp == 2)
			{id = 3; bookId = 'book'+id; move = 1;}
//book4////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			if(div.offsetLeft + slide > book4 + slide && div.offsetLeft + slide < book4 + slide + 5) tmp = 1;
			
			if(div.offsetLeft + slide < book4 + slide && div.offsetLeft + slide > book4 + slide - 5) tmp = 2;
					
			if(div.offsetLeft + slide > book4 + slide + 5 && div.offsetLeft + slide < book4 + slide + 10 && tmp == 1)
			{id = 4; bookId = 'book'+id; move = 1;}
				
			if(div.offsetLeft + slide < book4 + slide - 5 && div.offsetLeft + slide > book4 + slide - 10 && tmp == 2)
			{id = 4; bookId = 'book'+id; move = 1;}


			var book = document.getElementById(bookId).offsetLeft;
			if(move == 1)
			{
				if(tmp == 1)
				{
					var i = book;
					if(book - shelf.offsetLeft + 5 >= div.offsetWidth + 20)
						var j = book - div.offsetWidth + 20;
					else
					{
						if(book - shelf.offsetLeft + 5 < div.offsetWidth + 20)
							var j = shelf.offsetLeft + 4;
					}
				}
				else
				{
					if(tmp == 2)
					{
						var i = book;
						if(shelf.offsetLeft + shelf.offsetWidth - book - 5 >= div.offsetWidth + 20)
							var j = book + div.offsetWidth - 20;
						else
						{
							if(shelf.offsetLeft + shelf.offsetWidth - book - 5 < div.offsetWidth + 20)
								var j = shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4;
						}
					}
				}
				if(j > shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4)
					j = shelf.offsetLeft + shelf.offsetWidth - div.offsetWidth - 4;
				t1A = new Tween(document.getElementById(bookId).style,'left',Tween.strongEaseOut,i,j,0.5,'px');
				t1A.start();
				tmp = 0;
				move = 0;
			}
		}
	}
}
Ответить с цитированием
  #28 (permalink)  
Старый 27.07.2012, 22:01
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

проблема насколько я понял в 89 строке, но какой объект ему нужен?
Ответить с цитированием
  #29 (permalink)  
Старый 27.07.2012, 22:13
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Ну потестируйте alert-ом какие параметры на каком шаге получаются (я именно так проверил какое значение получает event.pageX в первой ситуации), получает ли book нужное значение или нет и т.п.
PS: и не забудьте доработать последний пример на предмет первой ситуации
Ответить с цитированием
  #30 (permalink)  
Старый 27.07.2012, 22:19
Аспирант
Отправить личное сообщение для FoxTrix Посмотреть профиль Найти все сообщения от FoxTrix
 
Регистрация: 27.07.2012
Сообщений: 73

и book и bookId и move получают нужные значения
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возможно где-то уже повторялось, по поводу invalid Json belbek AJAX и COMET 4 20.06.2012 02:16
firebug пишет ошибка invalid range in character class Dim@ Общие вопросы Javascript 5 10.05.2012 16:52
invalid, illegal character exception Vantedur Оффтопик 7 17.03.2012 03:11
missing ) after argument list - что не так? santus jQuery 2 30.12.2011 11:43
Warning: set_error_handler() expects argument - что это такое ?! PaFF Ваши сайты и скрипты 0 29.03.2011 09:59