gpt4 book ai didi

javascript - Three.js,appendChild 和返回

转载 作者:行者123 更新时间:2023-11-29 21:55:11 25 4
gpt4 key购买 nike

这实际上是我已经解决的问题,但出于好奇,我想知道是否有人可以解释为什么会这样?

这是我的 html:

    <!DOCTYPE html>
<html>

<head>
<script src="three.min.js"></script>
<script src="OrbitControls.js"></script>
<script type="text/javascript" src="webgl.js"></script>
</head>

<body style="margin: 0;">

</body>

</html>

和我的 JS:

    var scene, camera, renderer;

init();

animate();

function init(){

scene = new THREE.Scene();

var width = window.innerWidth, height = window.innerHeight;

renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(width, height);
document.body.appendChild(renderer.domElement);

}

这不起作用,我得到“Uncaught TypeError: Cannot read property 'appendChild' of null”

但是当我将 webgl.js 脚本移动到正文时,它会正确呈现 Canvas 元素。

为什么会这样?为什么我的脚本需要在 body 中附加 dom 元素?渲染器对象在我的控制台中返回一个 Canvas ,这是什么问题?

最佳答案

当脚本在head内部被调用时,body还不存在。您可以通过在头部和主体中调用 console.log(document.body) 来查看这一点。您会发现 document.bodynull,因为正文尚未创建。

关于javascript - Three.js,appendChild 和返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com