Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Three.js快速入门

  • 2.几何体BufferGeometry

  • 3.模型对象、材质

  • 4.层级模型

  • 5.顶点UV坐标、纹理贴图

  • 6.加载外部三维模型(gltf)

  • 7.PBR材质与纹理贴图

  • 8.渲染器和前端UI界面

  • 9.生成曲线、几何体

  • 10.相机基础

  • 11.光源和阴影

  • 12.精灵模型Sprite

  • 13.后处理EffectComposer

  • 14.射线拾取模型

  • 15.场景标注标签信息

    • 1. CSS2DRenderer(HTML标签)
    • 2. HTML标签遮挡Canvas画布事件
    • 3. Canvas尺寸变化(HTML标签)
    • 4. 标签位置不同设置方式
    • 5. 标签位置(标注工厂设备)
    • 6. 标签指示线或箭头指向标注点
    • 7. 鼠标选中模型弹出标签(工厂)
    • 8. 单击按钮关闭HTML标签
      • 9. CSS3DRenderer渲染HTML标签
      • 10. CSS3批量标注多个标签
      • 11. 精灵模型Sprite作为标签
      • 12. Sprite标签(Canvas作为贴图)
    • 16.关键帧动画

    • 17.动画库tween.js

    • Three.js教程
    • 15.场景标注标签信息
    郭隆邦
    2023-03-13
    目录

    8. 单击按钮关闭HTML标签

    # 单击按钮关闭HTML标签

    给HTML标签,增加一个关闭按钮,鼠标单击之后,可以把射线弹出的标签关闭。

    # HTML标签增加一个关闭按钮

    <style>
        #close:hover {
            cursor: pointer;
        }
    </style>
    <div style="position:absolute;left:350px;top:20px;">
        <img id="close" src="./关闭.png"  width="32">
    </div>
    

    # 单击按钮关闭HTML标签

    注意把原来射线拾取里面隐藏发光描边和标签的代码删除,以免影响HTML关闭标签的功能测试。

    // 鼠标单击按钮,关闭HTML标签
    document.getElementById('close').addEventListener('click',function(){
        if (chooseObj) {//把原来选中模型对应的标签和发光描边隐藏
            outlinePass.selectedObjects = []; //无发光描边
            chooseObj.remove(tag); //从场景移除
        }
    })
    

    # 单击关闭按钮无效情况

    现在你单击按钮去关闭HTML元素标签,如果发现无效,有可能是HTML标签设置了属性.style.pointerEvents = 'none'

    //设置.pointerEvents=none,解决HTML元素标签对threejs canvas画布鼠标事件的遮挡
    css2Renderer.domElement.style.pointerEvents = 'none';
    

    如果你的项目要求三维场景的添加标签时候,不能影响canvas画布的事件,必须设置.style.pointerEvents = 'none',可以考虑把标签的子元素,关闭按钮,单独设置.style.pointerEvents = 'auto'或者style="pointer-events: auto;"

    <img id="close" src="./关闭.png" style="pointer-events: auto;">
    
    document.getElementById('close').style.pointerEvents = 'auto';
    
    7. 鼠标选中模型弹出标签(工厂)
    9. CSS3DRenderer渲染HTML标签

    ← 7. 鼠标选中模型弹出标签(工厂) 9. CSS3DRenderer渲染HTML标签→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式