javascript - 如何捕获组中特定网格上的点击事件

标签 javascript three.js

我有一组圆形几何元素,它们位于二十面体元素的顶点上。我想使用 jQuery 在每个单独的圆形元素上执行单击事件。那么如何在这些元素上实现 jQuery 点击事件..

给我推荐一些好的引用资料..

最佳答案

使用光线转换方法。基 native 制是这样的: (三个修订版 70 和 javascript vanila)

1) 设置目标

var targets = [], 
    // When defining your 3d objects, use the push method 
    // to select the meshes you want to intersect.
    // targets.push(objectMesh);

2) 设置光线转换器

var raycaster = new THREE.Raycaster(),
    mouse = new THREE.Vector2(),
    intersects;

3) 与目标相交

searchTarget(event){
    mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
    mouse.y = - (event.clientY / window.innerHeight) * 2 + 1;
    raycaster.setFromCamera(mouse, camera);
    intersects = raycaster.intersectObjects(targets);
    if (intersects.length > 0){
         // Use the intersected objects: 
         // intersects[0] represents the foremost object that was hovered
    }
}

4) 设置监听器

renderer.domElement.addEventListener('mousemove', searchTarget, false);

您还可以使用 jQuery:$( "#canvas").mousemove( searchTarget );

关于javascript - 如何捕获组中特定网格上的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30592655/

相关文章:

Javascript/jQuery 函数参数

javascript - 如何使用 jQuery 切换表格内容

javascript - Three.js 如何确保模型加载后加载其他 javascript 文件

javascript - THREE.js:需要帮助旋转四元数

javascript - 根据鼠标指针放大对象

three.js - 什么是 Three.js 的 CopyShader?

javascript - 奇怪的javascript对象问题

javascript - 搜索分页表 - JS

javascript - Three.js:如何挤出图像文件定义的形状

javascript - porto magento 2 demo 1 主题中没有缩放功能