Показать сообщение отдельно
  #1 (permalink)  
Старый 06.05.2015, 12:01
Аватар для _Walker
Новичок на форуме
Отправить личное сообщение для _Walker Посмотреть профиль Найти все сообщения от _Walker
 
Регистрация: 24.04.2012
Сообщений: 6

правильная(!) Логика зацикливания анимации "туда - обратно".
Есть задача зациклить движение некоего объекта на странице. Важна именно логика поэтому работать будем с одной переменной - X.
Итак, задача такова:
1)X инициируется со значением 0
2)при каждой итерации он увеличивается на 0.1 и растёт до 1
3)как только он стал равен 1, он начинает уменьшаться до -1 с тем же шагом
4)опустившись до -1 он снова растет до 1
5)и так по кругу до бесконечности

Вопрос как правильно составить логику?

мой вариант(нерабочий):
var back,x,cicle;
	x = 0;
	back = !true;
cicle = setInterval(function(){
	if (!back) { x+=0.1;if (x>=1) {back = true;}} else {x-=0.1;if (x<=-1) {back = !true;}}
	console.log(x);
},100);


Вот что выдает этот скрипт:
(прошу прощения, я не нашёл как ставить спойлер)

0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
0.9999999999999999
0.8999999999999999
0.7999999999999999
0.7
0.6
0.5
0.4
0.30000000000000004
0.20000000000000004
0.10000000000000003
2.7755575615628914e-17
-0.09999999999999998
-0.19999999999999998
-0.3
-0.4
... и так далее

Итак кто чем может помочь прошу под кат.
Ответить с цитированием