Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2014, 12:26
Новичок на форуме
Отправить личное сообщение для illarion Посмотреть профиль Найти все сообщения от illarion
 
Регистрация: 13.08.2013
Сообщений: 5

Отслеживание положения элемента
Здравствуйте, мне надо, что бы как только объект входил в зону происходила событие. Я пробовал так:
var poz_top= $('#fly').offset().top;
		  if ( poz_top > 450 ) {
		    alert ('Text');
			}

Но событие происходит не тогда, когда объект входит в зону, а когда он начинает оттуда уходить. Подскажите, пожалуйста, что надо сделать, что бы это работало правильно.
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2014, 12:39
Новичок на форуме
Отправить личное сообщение для illarion Посмотреть профиль Найти все сообщения от illarion
 
Регистрация: 13.08.2013
Сообщений: 5

Во время анимации, например, если объект опустился до top:400. Ну или "вошел" в другой объект.
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2014, 13:23
Новичок на форуме
Отправить личное сообщение для illarion Посмотреть профиль Найти все сообщения от illarion
 
Регистрация: 13.08.2013
Сообщений: 5

Хорошо. Объект движется по оси Y. При клике по экрану объект перемещается на то положение оси Y, на котором был клик. Если он заходит слишком высоко или низко, то вылетает сообщение с текстом.
Я сделал так:
$('#fly').animate({ top: evt.clientY },{ queue:false, duration:1000, easing:"linear"});
	     var poz_top= $('#fly').offset().top;
		  if ( poz_top > 450 ) {
		    alert ('Text');
			}
	    return;

Ну и возникает такая ошибка, которая обозначена в начале. Надеюсь с 3-й попытки получилось нормально объяснить проблему=)

Последний раз редактировалось illarion, 05.08.2014 в 13:26.
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2014, 14:18
Новичок на форуме
Отправить личное сообщение для illarion Посмотреть профиль Найти все сообщения от illarion
 
Регистрация: 13.08.2013
Сообщений: 5

Неа, все равно та же проблема. Я так понял все из-за того, что координаты считаются после клика, а не после окончания координат.
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2014, 14:33
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от illarion Посмотреть сообщение
Хорошо. Объект движется по оси Y. При клике по экрану объект перемещается на то положение оси Y, на котором был клик. Если он заходит слишком высоко или низко, то вылетает сообщение с текстом.
это делается элементарно.
алгоритм такой:
1) При клике на экран фиксировать координаты этого клика (в вашем случае только у координату)
2) если у координата у движущегося объекта не равна зафиксированной у тогда вылетает сообщение

причем проверять нужно на каждом шаге анимации объекта, а не в конце анимации.
var stateObject = { x: 0, y : 0 };

	document.onclick = function( e ) {
		e = e || event;
		
		stateObject.y = e.pageY;		
	}	
	
	function animStep( obj ) {	
		if ( obj.y !== stateObject.y ) {
			alert ('Text');
		} else return;
	}
примерн так

Последний раз редактировалось Arramis, 05.08.2014 в 14:57.
Ответить с цитированием
  #6 (permalink)  
Старый 05.08.2014, 14:58
Новичок на форуме
Отправить личное сообщение для illarion Посмотреть профиль Найти все сообщения от illarion
 
Регистрация: 13.08.2013
Сообщений: 5

Arramis спасибо, сейчас будем пробовать!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить обработчики элемента, при изменения положения элемента в dom-дереве ? Danxil Events/DOM/Window 5 08.11.2013 23:33
Расчет положения элемента Moloch Events/DOM/Window 6 30.10.2013 21:45
Замена DOM элемента другим элементом MaxXxaM Events/DOM/Window 5 04.05.2013 01:24
Отслеживание положения скролбара ацкий Events/DOM/Window 2 23.08.2011 13:06
Отслеживание положения курсора beat Общие вопросы Javascript 4 25.06.2011 10:46