javascript - 函数未被调用

标签 javascript html css

我正在尝试创建一个像 pacman 中那样的幽灵(这是一个图像),它会出现在随机位置。这是我的代码

function ghost(){
        while (true){

        e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
        document.body.appendChild(e1);

        }

        }
<body  onload="gameLoop();" onkeydown="" onkeyup="moveSelection(event)"  onload="ghost();">

我希望它并排无限地运行。

最佳答案

您不能在 Javascript 中编写这样的无限循环,因为它会永远运行,阻止浏览器执行任何其他操作,从而有效地“挂起”浏览器,直到浏览器最终中止脚本。浏览器中的主要 Javascript 执行是单线程的,因此如果你像这样永远循环,那么其他任何东西都无法运行。

相反,您可以使用 setInterval() 计时器随时间更新位置。如果您能用文字准确描述您想要完成的目标,我们可能会更具体地帮助您推荐代码。

此外,您在 body 标签上只能有一个 onload 属性,因此您可以从一个属性调用两个函数,或者创建一个调用多个事物的新函数,并在onload 属性。

下面是 setInterval() 的简单用法:

// something must set the e1 variable first
document.body.appendChild(e1);         
setInterval(function() {
    e1.style.top = Math.round(Math.random() * document.body.scrollHeight) + 'px';
}, 5000);

请注意,根据您的代码,这将导致图像不时地在屏幕上跳到随机的上/下位置。

关于javascript - 函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056343/

相关文章:

javascript - OpenLayers 3 - 几个WMS图层,如何仅从可见图层获取特征信息?

php - 双体标签导致 Wordpress 网站无法正常工作

asp.net - 使用链接打开默认邮件客户端

html - 使用内联 block 格式化 block

javascript - 有人可以帮我弄清楚我的代码有什么问题吗?它将RNA序列翻译成蛋白质

javascript - 如何在底部动态时保持元素顶部静态。 -CSS

javascript - 使用 Angularjs 和 ng-model 进行数据绑定(bind),将毫米转换为英尺和英寸,反之亦然

javascript - 在php中从mysql复制带有嵌入式下拉列表的html表单javascript

css - CSS 的 HTML <div> 放置问题

javascript - 如何更改 html 文本区域中的输入法(即外语)