【发布时间】:2021-12-28 21:46:15
【问题描述】:
我正在 Three.js 中制作带有移动对象的动画。在这个动画中,我在单击对象时创建了一个文本气泡,并且它有一个“X”按钮来关闭它。但是,如果 x 按钮覆盖 Three.js 中的 3D 对象,则该按钮将被完全忽略,而是单击 3D 对象。我怎样才能避免这种情况,而是让这个 HTML 内容始终具有优先权?
我正在使用光线投射来检测我的 3D 对象上的点击,如果这有帮助的话。我已经尝试给按钮一个更高的 z 顺序,但是没有用。而且,需要明确的是,从视觉上看,HTML 内容位于 3D 对象之上。
此外,如果单击文本气泡不会直接落入文本气泡下方的对象,那就太好了。
编辑:这是我的 onclick 函数的简化代码(适用于我的 3D 对象)。我将不同的 onclick 函数绑定到我的相关按钮。
document.addEventListener('mousedown', () => {
raycaster.setFromCamera(mouse, camera);
const hits = raycaster.intersectObjects(scene.children);
if(hits.length > 0) {
---do stuff---
}
renderer.render(scene, camera);
});
【问题讨论】:
标签: javascript html css animation three.js