我正在学习如何将 Three.js 集成到 Polymer 的 Lit-Element 中。我当前的问题是我需要引用 div 元素来附加 Three 的 Renderer 元素。通常是这样做的:
box = document.getElementById("box")
box.appendChild(renderer.domElement)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法找到如何从 constructor()/firstUpdate() 引用渲染函数中声明的 div。你会怎么做?
这是我目前最好的结果: 渲染器元素偏离目标
下面是获得此结果的代码: HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<box-test></box-test>
<script type="module" src="src/components/box-test.js" crossorigin></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
import { LitElement, html } from '@polymer/lit-element';
import * as THREE from 'three/build/three.module';
class BoxTest extends LitElement {
constructor() {
super();
var scene = new THREE.Scene();
var camera = …Run Code Online (Sandbox Code Playgroud)