javascript - while 循环中的 setTimeout 使我的浏览器崩溃

标签 javascript

我试图通过添加到它的 .style.left 和所有工作来移动图像,直到我尝试添加一个 while 循环(添加直到它的 left 值为 90)并添加 setTimeout 以便移动可见.问题是 HTML 甚至不再加载,过了一会儿它要求我停止脚本或继续 - 这两者都没有帮助,我被迫终止浏览器。

相关代码如下:

    function sprint(){
    button = parseInt(document.getElementById("azisButton").style.left.split("%")[0]);
    while(button<10){
        setTimeout(function(){
            button++;
            //console.log(button);
        }, 1000);
        //console.log("Tady");
    }
}

为什么会这样?我会进入无限循环吗?

编辑:有什么办法可以用其他更聪明的方式来做吗?

最佳答案

你建立了一个无限循环! button++ 在回调中递增,但回调仅在循环结束时执行,因为 JavaScript 是单线程的。

关于javascript - while 循环中的 setTimeout 使我的浏览器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22584035/

相关文章:

javascript - 星级评分系统点击保存值(value)

javascript - 如何使用带有 session 值的脚本检查表?

javascript - 如何对网页内容实现客户端密码保护?

javascript - 使用 Ajax GET 从服务器获取 XML

javascript - 检查选中了哪个单选按钮

javascript - 在 reactjs 中呈现本地镜像/javascript 片段

javascript - 是否可以将 iframe 值放在 textarea 中?

javascript - Chrome 扩展程序简单音频

javascript - 这个 redux Action 和 reducer 有什么问题?

javascript - 如何为 Angular ngrx 中的选择元素设置初始值?