Отслеживание положения элемента
Здравствуйте, мне надо, что бы как только объект входил в зону происходила событие. Я пробовал так:
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, время: 16:32. |