本文介绍如何在Three.js中通过监听window的resize事件实现场景自适应。核心步骤包括更新Camera的aspect比例并调用updateProjectionMatrix,同时调整renderer.setSize以匹配浏览器宽高,确保模型随窗口变动正确显示。
前言
Three.js窗口自适应原理与实现
在Web开发中,若未针对浏览器窗口尺寸变化配置场景模型的自适应逻辑,会导致渲染异常。为解决这一问题,本文将详细讲解如何使Three.js场景跟随浏览器宽度和高度的变化进行自适应调整。
实现场景随浏览器大小变动而自适应的关键,在于监听window对象的resize事件,该事件会在浏览器窗口尺寸发生改变时触发。
window.onresize = function(){}
监听resize事件
可以通过绑定addEventListener方法来注册resize事件监听器。
window.addEventListener("resize",function(){})
更新相机与渲染器参数
在成功监听事件后,需要编写具体的回调函数以处理窗口变动后的逻辑。
//窗口变动触发的函数
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
}
上述代码的核心在于更新摄像机的aspect属性以及调用renderer的setSize方法,从而达成预期的自适应效果。
此处引用的代码基于前文示例,不再重复上传完整代码(有需要的读者可参考相关链接),现展示两张示例效果图片。

上图展示了全屏状态下的显示效果,下图则展示了将浏览器窗口缩小至一半宽度后的显示效果。

总结
本文介绍了Three.js中实现浏览器窗口自适应的方法,希望能为读者在学习或使用Three.js时提供有价值的参考。如有任何疑问,欢迎留言交流,感谢支持。