You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

照搬教程的Three JS代码运行仅显示白屏无法正常工作如何排查

Three.js 初始化后白屏、未出现预期黑屏的修复方案

核心问题点

你当前的代码存在两个直接导致白屏的问题:

  • 缺失渲染调用:WebGLRenderer初始化、挂载DOM后,必须主动调用render()方法才会执行画布绘制,未调用时canvas为透明状态,透出页面默认白色背景,自然看不到教程提到的黑屏效果。
  • 容器高度未定义:CSS中给canvas设置height: 100%时,需要父级html、body元素有明确的高度基准,否则canvas实际高度计算为0,无法正常显示。
  • 额外隐患:相机默认位置在场景原点(0,0,0),后续添加物体到原点时会和相机位置重合,导致物体不可见。

修复方案

  1. 调整CSS样式,补全根元素高度规则,消除滚动条影响:
* {
    margin: 0;
    padding: 0;
}
html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
}
canvas {
    display: block;
    width: 100%;
    height: 100%;
}
  1. 修改JS代码,补全相机位置设置和渲染调用:
const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
// 将相机沿Z轴后移,避开场景原点
camera.position.z = 5;

const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

// 执行渲染,渲染器默认用黑色清空画布,即可得到预期黑屏
renderer.render(scene, camera);

异常排查

如果修改后仍有问题,打开浏览器开发者工具的Console面板检查报错:

  • 出现THREE is not defined报错:检查three.min.js的资源引入是否正常
  • 出现main.js404报错:检查本地JS文件的存放路径是否和script标签中写的./js/main.js匹配

内容的提问来源于stack exchange,提问作者AndThePanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:54:21