0
我正在编写一个锁定屏幕,它从Windows 8获取“灵感”。当用户单击图像时,它向上滑动以显示密码输入字段等。我希望锁定屏幕“过渡”或“动画”,而不仅仅是改变显示属性。Javascript“Maximum Call Size Stack Exceeded”
我已经为调用一个名为SlideLockscreenUp的函数的click设置了一个事件处理程序。这是当我运行这个,我遇到了“最大调用大小堆栈超过”错误。最初,我的代码是:
function slideLockscreenUp(){
t = setTimeout(function(){
ls.style.top = '-1%';
}, 100);
slideLockscreenUp();
}
当我第一次我以为这是因为我还没有设置递归停止任何条件的错误,因此它会继续永远迫使浏览器的干扰。
原来这就是我想出了下一个:
function slideLockscreenUp(){
do{
t = setTimeout(function(){
ls.style.top = '-1%';
}, 10);
slideLockscreenUp();
} while(ls.style.top < "-100%");
}
正如你可以看到我的测试显示属性停止功能时的位置:顶部是-100%。然而,我仍然得到这个错误,现在我对此有些困惑。任何帮助将是伟大的!
Javascript是单线程的。只要while循环运行,'setTimeout'函数将永远不会运行。 – Barmar
嗯。有没有其他的循环可以用来解决这个问题?谢谢 – Joshua
最好的解决方案是利用CSS转换,而不是试图在Javascript中做到这一点。 – Barmar