代码之家  ›  专栏  ›  技术社区  ›  user2132190

三个。js WebGLRenderer画布使用“单击”鼠标事件

  •  2
  • user2132190  · 技术社区  · 7 年前

    当我添加 domElement (即画布)三者中的一个。js公司 WebGLRenderer 对于我的文档,当我单击画布的父级容器元素时,不再触发“单击”鼠标事件。

    有没有办法防止画布使用鼠标点击?

    编辑: 删除以下单行代码(即根本不添加画布)将恢复单击:

    this.domElement.appendChild(this.threeRenderer.domElement);
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Dacre Denny    7 年前

    一种可能是使用 pointer-events:none 这样画布就不会截获您打算让容器元素使用的鼠标事件:

    HTML :

    <!-- Your container element -->
    <div id="container"> 
    
        <!-- The nested, child canvas used by THREE -->
        <canvas id="canvas"></canvas> 
    </div>
    

    CSS:

    /* Prevent the canvas from intercepting mouse events */
    #canvas {
        pointer-events:none;
    }
    

    JS公司:

    /* Register click event with the container element */
    document.getElementById('container')
    .addEventListener('click', function() {
        alert('click');
    });
    

    希望有帮助