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