Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Движение объекта и текующие координаты (https://javascript.ru/forum/jquery/15910-dvizhenie-obekta-i-tekuyushhie-koordinaty.html)

ArmagedDance 18.03.2011 22:44

Движение объекта и текущие координаты
 
Подскажите, как извлечь текущие координаты у движущегося обьекта в Jquery? Мне надо проверять не вышел ли за экран объект и если вышел - производить определенные действия.
Анимания (движение) начинается автоматически по загрузке окна, функцией animate().

kostr 19.03.2011 00:30

Через offset().

ArmagedDance 19.03.2011 10:54

А как именно?

Вот такой код почему-то не работает.

$("#baby").animate({left: '+=1000'},2500);
var pos = $(document).width()-$("#baby").offset().left-$("#baby").width();
if(pos==0) alert("конец!");

Matre 19.03.2011 11:11

$("#baby").animate({
	left : $(document).width() - $("#baby").width();
}, 2500);

ArmagedDance 19.03.2011 11:34

Спасибо.
А как мне проверить, достиг ли элемент границы экрана (чтобы потом вызвать сообщение)?

Matre 19.03.2011 11:40

$("#baby").animate({ 
    left : $(document).width() - $("#baby").width(); 
}, 2500, function () {
	alert("Done!");
});

ArmagedDance 19.03.2011 12:39

Нет, немного не то. Расскажу, что мне нужно в итоге получить.
Я пишу игру на javascript. Смысл игры заключается в переносе мышкой объектов, которые постоянно появляются в окне в одной точке и разлетаются в разные стороны, в фиксированное место.
Drag and Drop реализован с помощью Jquery UI.

Собственно, текущая проблема состоит в том, что сообщение о том, что объект достиг границы экрана будет выдано в любом случае после прекращения анимации, а мне надо, что анимация после перемещения объекта в коллектор просто сбросилась и не выдала сообщение о проигрыше.
Вот набросок кода.
$(".drop").droppable({ 
    accept: ".baby", 
    over: function(ev, ui) { 
        /*$(".baby").hide(); */
		/*$(".baby").remove();*/
    }, 
    out: function(ev, ui) { 
        $(this).append("Out! "); 
    } 
});

var deltime = setInterval(function() { 
$("<div class=baby><img src=baby2.gif></div>").appendTo("body");
$(".baby").draggable();
$(".baby").animate({ 
left: $(document).width()-$(".baby").width()}, 2000, function(){
alert("Вы проиграли!");
});
$(".baby").mousedown(function(){
$(this).stop();
});
},1000);


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