Я пытаюсь правильно настроить очень простой c пример с тремя JS и Angular 8.
Когда я пытаюсь изменить размер моего холста, чтобы удалить полосы прокрутки, я получаю ошибка "Невозможно прочитать свойство 'width' of null" .
Это из-за холста, но я не знаю почему.
Компонент. html:
<canvas id="myCanvas"></canvas>
Компонент. css:
body {
margin: 0;
}
canvas {
width: 100vw;
height: 100vh;
display: block;
}
Component.ts:
export class Scene3dComponent implements OnInit {
scene = new THREE.Scene()
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
canvas = document.querySelector("canvas")
renderer = new THREE.WebGLRenderer({antialias: true, canvas: this.canvas})
constructor() { }
ngOnInit() {
this.startScene();
}
startScene() {
this.renderer.setClearColor('#E5E5E5')
this.renderer.setSize(window.innerWidth, window.innerHeight)
this.renderer.render(this.scene, this.camera)
document.body.appendChild(this.renderer.domElement)
window.addEventListener('resize', () => {
this.renderer.setSize(window.innerWidth, window.innerHeight)
this.camera.aspect = window.innerWidth / innerHeight
this.camera.updateProjectionMatrix();
})
}
}
Я почти уверен, что что-то не понимаю, но не знаю, что.