添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在用threejs 实现类似3d看房中 热点事件 使用 CSS2DRenderer html标签 展示效果

  • 第一次尝试 使用 raycaster 射线拾取 无法获取 CSS2DRenderer 只可以获取 相交的模型
  • 第二次尝试 在 vue 中直接使用 @click 事件 会出现 click 阻塞问题
  • 出现问题 在我使用 OrbitControls 创建控制器(controls) new OrbitControls(camera, CSSRender) 用于事件监听的HTML元素 为 CSS2DRenderer() 一开始这样是方便 不用添加 style.pointerEvents = 'none' 就可以直接操纵 控制器 但是这样一来 click 事件就不会生效了 因为 在ThreeJs 0.13X版本后,因为 控制器 原因 dom 的 click 不会触发.

    问题前代码:

    发现问题后 修改了 创建控制器 new OrbitControls(camera, renderer.domElement) 这样一来控制器的监听事件只作用于randerer生成的cavans,不会对外部产生影响;在添加dom之前不要忘记给 CSS2DRenderer() 加上 CSSRender.domElement.style.pointerEvents = 'none' 否则就无法使用 控制器;之后就可以在要点击的dom元素上 设置 dom.style.pointerEvents = 'auto' 这样就可以解决 CSS2DRenderer 标签点击事件无效问题

    controls

    render

    Defineee three.js JavaScript
    私信