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

exec 09.12.2010 15:11

vyazovetskova, зачем вам этот бред? Анимация через цикл не делается. Чем вам мой код не угодил?

exec 09.12.2010 15:25

dmitriymar, чтобы вы не несли чушь про циклы, я покажу вам наглядный пример, как делается такая анимация на чистом JS:

<div id='foo' style='width: 50px; height: 50px; position: absolute; background: #555555'>
</div>

<script type='text/javascript'>
window.onload = function () {
	document.getElementById("foo").onclick = function () {
		var E = this;
		this.onclick = new Function;
		(function (toTop, from, to) {
			var start = new Date().getTime(),
			callee = arguments.callee;
			setTimeout(function () {
				var progress = (new Date().getTime() - start) / 1000;
				E.style.top = ((to - from) * progress + from) + "px";
				if (progress < 1)
					setTimeout(arguments.callee, 13);
				else
					callee(!toTop, toTop ? 0 : 180, toTop ? 180 : 0);
			}, 13);
		})(false, 0, 180);
	};
};
</script>

dmitriymar 09.12.2010 17:15

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

dmitriymar 09.12.2010 17:17

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

dmitriymar 09.12.2010 17:19

exec,
что называть анимацией-какоето движение? так без разницы движение точки будет по таймеру или в цикле зациклено-и то и другое будет называться анимацией!!!или графические изменения с помощью ассемблера или другого языка это не анимация? но в ассемблере для чтения с мыши есть прерывания. а вот js как обрабатывает посторонние действия во время выполнения.если как борландовский с++ или делфи то во время выполнения действий отслеживать не будет. и если это именно эта модель -то стоит по таймеру вызывать функцию смещения всего на пару точек. и так много раз-это в этом случае будет естественным прерыванием на опрос переферии.
Ну и наверное если выкладывается код к этой цитате-dmitriymar, чтобы вы не несли чушь про циклы, я покажу вам наглядный пример, как делается такая анимация на чистом JS:
то стоит позаботиться о том чтобы он хотябы работал.у меня в FF он не работает!!!

Kolyaj 09.12.2010 17:41

Цитата:

Сообщение от dmitriymar
или в цикле зациклено-и то и другое будет называться анимацией!!!

dmitriymar,
давайте вы уже попробуете у себя на компьютере зациклить что-нибудь, увидеть повисший браузер вместо анимации и перестанете нести ахинею.

dmitriymar 09.12.2010 17:47

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

Kolyaj 09.12.2010 17:50

Я так понимаю, до сих пор говорим о своих фантазиях. Тогда рассказываю: когда браузер висит, он ничего не перерисовывает. Без перерисовки нет анимации.

dmitriymar 09.12.2010 17:54

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

dmitriymar 09.12.2010 18:06

Kolyaj,
хотя бы читал внимательно что написано а потом коментил-уже не первый раз это вижу от одного и тогоже


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