Нужно по клику плавно перемотать страницу на верх. В цикле происходит задержка на 100 мс и текущая позиция position уменьшается на 10 пикселей с каждой итерацией. При попытке запустить страница переходит на верх мгновенно.
var position=window.pageYOffset;
while(position>0)
{
setTimeout(function (){window.scrollTo(0,position)}, 100);
position=position-10;
}
Однако, если добавить, например, alert(position); в тело цикла, то видно, что с каждой итерацией страница действительно сдвигается и значение position действительно уменьшается на 10 пикселей. В чем может быть проблема?
UPD: Если поставить большое время задержки (без alert) страница прокручивается не мгновенно, а через секунду-две.