Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   При повторнм запуске функции - считает не верно (https://javascript.ru/forum/dom-window/33371-pri-povtornm-zapuske-funkcii-schitaet-ne-verno.html)

Iktash 20.11.2012 22:05

При повторнм запуске функции - считает не верно
 
Прошу помощи. Проблема такая: у меня должны быть "планеты" которые вращаются по орбите. Делаю функцию для расчета координат и размеров так:
function stable(num){
var l = $("div.ball").length;
$("div.ball").each(function(i,domEle) {
var fi = ((1/2)*Math.PI+(2*(i+num)*Math.PI)/l);
var x = 400*Math.cos(fi);
var y = 50*Math.sin(fi);
var h = 120 + y;
domEle.style.top = y+"px";
domEle.style.left = x+"px";
domEle.style.width = h+"px";
domEle.style.height = h+"px";
if (h<100) {this.style.zIndex = "1";}
});
}

При загрузке страницы все работает вот так:
$( document ).ready(
        function(){
stable(0);
        }
);

При любом передаваемом значении вполне коректно поворачивает по элипсу "планетки". Однако, если вызвать функцию второй раз (вместо stable(0); поставить например stable(0);stable(1); ) работает не верно(все смещаются непонятно как). Прошу указать на мою ошибку. Заранее спасибо.

Iktash 21.11.2012 19:00

Проблему решил сам. Если кому нужно: Проблема была в том, что не коректно обрабатывалось, если какое-нибудь из свойств уходило в ноль(в углах, кратных pi/2). Спасло положение добавление единичек:
y=y+1; И так далее.


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