Полагаю, вы инициализировали i
вне функции.Это i
, который будет всегда передаваться при выполнении рекурсивного вызова.Это потому, что когда вы задаете строку для setTimeout
, она оценивается в глобальной области видимости.
Это означает, что i++
внутри функции влияет только на локальный i
, а не на глобальный i
, поэтому i
равно никогда не увеличивается не увеличивается за пределы 1 + глобального значения.
Вместо этого передайте анонимную функцию, которая вызывает рекурсивный вызов.Таким образом, вы фактически передаете увеличенный i
.
while( i <= 100 )
setTimeout(function() {
zoomImage(i, image, currentWidth, currentHeight, targetWidth, targetHeight);
},10);
Конечно, как отмечено в комментариях, while
не кажется правильным выбором здесь.