Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2011, 19:01
Аспирант
Отправить личное сообщение для Questioner Посмотреть профиль Найти все сообщения от Questioner
 
Регистрация: 03.02.2011
Сообщений: 80

Странное поведение анимации.
Здравствуйте! Я прочел статью http://beta.javascript.ru/tutorial/animation и попытался сделать маятник. получилось вот:
<!DOCTYPE HTML>
<html>
<body onload = "move(document.getElementById('a'))">   

  <script>
function move(el) {
  var i = 0, fading = 180;
  el.style.left = 0;
  el.style.top = 0;
  function fc() {
  left = (Math.cos(i/180*Math.PI) * el.parentNode.clientWidth*fading/180);
  el.style.left = (Math.cos(i/180*Math.PI) * el.parentNode.clientWidth*fading/180) + "px";
  el.style.top = ((left / 320) * 320) + "px";
  i++;
  fading -= 0.125;
  if(fading <= 0) {clearInterval(b)}
  };
  var b = setInterval(fc, 10);
}
  </script>
  <div style = "height: 320px; width: 320px; position: absolute; left: 295px">
<div style="height: 20px; width: 20px; background-color: blue; position: absolute; left: 0px; top: 0px" id = "a" onclick = "move(this)"></div>
</div>
</body>
</html>

скажите пожалуйста, что я делаю не так?

Последний раз редактировалось Questioner, 18.11.2011 в 19:58.
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2011, 09:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Questioner
попытался сделать маятник
Раньше я маятник представлял себе иначе... Или это какой-то броуновский маятник?
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2011, 13:43
fiw fiw вне форума
Аспирант
Отправить личное сообщение для fiw Посмотреть профиль Найти все сообщения от fiw
 
Регистрация: 18.08.2011
Сообщений: 23

Я полагаю что у вас проблемы именно с математическими операциями.
У вас получилась какая-то парабола неправильная)
Может быть код верный, а неточности проявляются от того, что при расчетах выводятся, числа с плавающей запятой. Точно не могу сказать. Я не знаю как сам маятник устроен.
Ответить с цитированием
  #4 (permalink)  
Старый 10.11.2011, 13:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от fiw
Я не знаю как сам маятник устроен.
Приезжай к нам в волгоградский планетарий - я тебе покажу...
http://volgogradplanetarium.volgadmin.ru/starhall.aspx
на фотке мало что видно...

Сообщение от fiw
У вас получилась какая-то парабола неправильная
И парабола вычисляется по формуле
y=A*(x*x)+B*x+C
где A, B и C константы из множества R... А никак не sin() и cos().

Последний раз редактировалось ksa, 10.11.2011 в 13:53.
Ответить с цитированием
  #5 (permalink)  
Старый 10.11.2011, 21:48
Аспирант
Отправить личное сообщение для Questioner Посмотреть профиль Найти все сообщения от Questioner
 
Регистрация: 03.02.2011
Сообщений: 80

На основе этого кода придумал игру: поймай квадратик
<!DOCTYPE HTML>
<html>
<body onload = "move(document.getElementById('a'))">   

  <script>
var b;
function move(el) {
  var i = 0, fading = 180;
  el.style.left = 0;
  el.style.top = 0;
  function fc() {
  el.style.left = (Math.cos(i/180*Math.PI) * el.parentNode.clientWidth*fading/180) + "px";
  el.style.top = (Math.abs(Math.sin((i-fading/2)/180*Math.PI) * el.parentNode.clientHeight)) + "px";
  i++;
  fading -= 0.125;
  if(fading <= 0) {clearInterval(b); alert("Вы проиграли!"); document.getElementById("a").onclick = function() {alert("Поздно!")}}
  };
  b = setInterval(fc, 10);
}
  </script>
  <div style = "height: 295px; width: 320px; position: absolute; left: 295px">
<div style="height: 40px; width: 40px; background-color: blue; position: absolute; left: 0px; top: 0px" id = "a" onclick = "alert('Вы выиграли!'); clearInterval(b); this.onclick = function() {}"></div>
</div>
</body>
</html>

Последний раз редактировалось Questioner, 10.11.2011 в 21:51.
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2011, 17:04
Аспирант
Отправить личное сообщение для Questioner Посмотреть профиль Найти все сообщения от Questioner
 
Регистрация: 03.02.2011
Сообщений: 80

Кстати, маятник движется по сектору окружности, а не по параболе
Ответить с цитированием
  #7 (permalink)  
Старый 15.11.2011, 17:08
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Questioner
На основе этого кода придумал игру: поймай квадратик
Улучшать и улучшать)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение FINoM Общие вопросы Javascript 0 22.04.2011 21:16
Странное поведение переменной mycoding Серверные языки и технологии 4 14.01.2011 19:18
Странное поведение jquery Ziki jQuery 3 02.12.2010 21:09
DragAndDrop у гридов в плавающих окнах странное поведение PavelK ExtJS 0 29.07.2010 15:26
Странное поведение replace cooli0 Общие вопросы Javascript 4 25.01.2010 17:16