Показать сообщение отдельно
  #2 (permalink)  
Старый 11.07.2008, 15:12
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

var n=0;
function move() {
if(n<45)
{
n++; //увеличиваем n на 1
document.getElementById('div1').style.left=index() ; //приравниваем .left значению, которое возвращает нам index()
}
setTimeout(move,1); //через 1 тысячную секунды запускаем move(), только уже с большим n
}
function index() {
return n + "%";
}

Что могу сказать, рекурсия никогда не закончится, потому что в условие n<45 не внесено setTimeout(move,1);

Если делать через setInterval, то рекурсия не нужна.
На вскидку так:
var n = 0;
var interval;
function index() {
return n + "%";
}
function move() {
n++; //увеличиваем n на 1
document.getElementById('div1').style.left=index() ; //приравниваем .left значению, которое возвращает нам index()
if (n>=45) clearInterval(interval); //если n>=45 отключаем setInterval
}
interval = setInterval(move, 1); //Ставим запуск move() каждую тысячную секунды

Не проверял.

Последний раз редактировалось Snipe, 11.07.2008 в 15:20.
Ответить с цитированием