【发布时间】:2018-04-28 02:39:17
【问题描述】:
好的,这里对 three.js 很陌生,但我正在努力实现 Google 所拥有的 https://beinternetawesome.withgoogle.com/interland
看 - 他们有他们的全屏 Three.js 场景和他们的文本、按钮(很明显是 HTML div,不是通过 JS 生成的)完美地覆盖在上面。
我看过 https://discourse.threejs.org/t/trying-to-overlay-a-button-and-text-on-top-of-a-three-js-scene/390/2
和类似的问题,但无法理解执行此操作的正确方法。我不想在 Three.js 中生成我的 UI 元素 - 我只想使用 HTML。
到目前为止,我生成了我的 Three.js 画布并将其添加到我的文档中,以便它获取并保持我的窗口的整个宽度/高度:
var controls, camera, renderer, scene, container, w, h;
renderer = new THREE.WebGLRenderer()
// container = document.getElementById('canvas');
container = window;
w = container.innerWidth;
h = container.innerHeight;
renderer.setSize(w, h)
renderer.setPixelRatio( window.devicePixelRatio );
document.body.appendChild(renderer.domElement);
然后使用我现有的 HTML:
<body>
<div id="ui">
<p id="message">Test to change</p>
</div>
无论我如何使用 CSS 或 UI div 的 z 索引,我都会将 UI div 卡在顶部:
如何在 three.js 场景上覆盖 HTML 以实现 Google 效果?我做错了什么?
我需要我的画布来填充整个窗口,就像 Google 所做的那样,并且无法实现它似乎事先制作了 canvas HTML 元素并尝试在 JS 中附加所有内容。
【问题讨论】:
标签: javascript jquery html css three.js