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() каждую тысячную секунды
Не проверял.