Отслеживание положения элемента
Здравствуйте, мне надо, что бы как только объект входил в зону происходила событие. Я пробовал так:
var poz_top= $('#fly').offset().top; if ( poz_top > 450 ) { alert ('Text'); } Но событие происходит не тогда, когда объект входит в зону, а когда он начинает оттуда уходить. Подскажите, пожалуйста, что надо сделать, что бы это работало правильно. |
Во время анимации, например, если объект опустился до top:400. Ну или "вошел" в другой объект.
|
Хорошо. Объект движется по оси 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-й попытки получилось нормально объяснить проблему=) |
Неа, все равно та же проблема. Я так понял все из-за того, что координаты считаются после клика, а не после окончания координат.
|
Цитата:
алгоритм такой: 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 спасибо, сейчас будем пробовать!
|
Часовой пояс GMT +3, время: 22:53. |