Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с анимацией (https://javascript.ru/forum/misc/13673-problemy-s-animaciejj.html)

vyazovetskova 08.12.2010 23:04

Проблемы с анимацией
 
Здравствуйте! Я в js новичок, та ктчо буду очень благодарна, если кто-то мне поможет. У меня есть следующая задачка: Есть картинка, которая положена в div. Этот div в бесконечном цикле сначала поднимается вверх на сотню пикселей, потом 'падает ' вниз на прежнее место. По клику на этот див, где бы он ни был, он должен 'упасть', т.е. вернуться в исходную позицию.
Бесконечное 'карабканье и падение' я сделала так:
function goes_up(){
$('#idl').animate({top:'-=180'},40000);//подъем
$('#id').animate({top:'+=180'},1000);//падение


};
setInterval(goes_up, 100);//бесконечный подъем и падение

Но когда я стала добавлять часть с кликом, то возникли проблемы (пыталась сделать через animate, но не вышло). Как мне можно решить эту проблему?

exec 09.12.2010 05:56

(function () {
	var callee = arguments.callee;
	$("#id").animate({
		top: "+=180px"
	}, 3000, function () {
		$(this).animate({
			top: "-=180px"
		}, 3000, callee);
	});
})();

vyazovetskova 09.12.2010 10:07

Цитата:

Сообщение от exec (Сообщение 82931)
(function () {
	var callee = arguments.callee;
	$("#id").animate({
		top: "+=180px"
	}, 3000, function () {
		$(this).animate({
			top: "-=180px"
		}, 3000, callee);
	});
})();

Цитата:

Сообщение от exec
var callee = arguments.callee;

А что жает эта переменная?

dmitriymar 09.12.2010 10:59

ну и не упадёт никогда по клику. пока цикл не закончится опросов и других любых действий не будет

vyazovetskova 09.12.2010 11:11

так ведь нужно,чтобы упала по клику

dmitriymar 09.12.2010 11:29

делать движение через таймер.появятся промежутки во времени между вызовами по таймеру в течении которых будет работать опросы мыши и клавы. вобщем момент в том чтобы были промежутки во времени между действиями производимыми по таймеру-может быть ситуация время след выполнения по таймеру уже подошло а пред действие ещё не отработало полностью(зависит от компа клиента).да и зачем библиотеки для этого ?на чистом скрипте с тем же эффектом это всё делается

Kolyaj 09.12.2010 11:31

Цитата:

Сообщение от dmitriymar
делать движение через таймер.

А можно сделать анимацию без таймера?

dmitriymar 09.12.2010 11:36

можно. повесить всё в цикл простой

Kolyaj 09.12.2010 12:00

А вы это пробовали хоть раз сделать? Покажите нам примерчик, пожалуйста.

vyazovetskova 09.12.2010 15:02

dmitriymar,
Правильно ли я понимаю:
Делаем цикл:
Подвинем немного, проверим, кликали ли;
Если кликали, то уроним элемент; если нет, то подвинем вверх.
Так?


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