首页 > 其他分享 >Cesium实现右键弹出菜单

Cesium实现右键弹出菜单

时间:2024-05-27 09:02:01浏览次数:26  
标签:menuVisible 菜单 const value 右键 Cesium ref

一、实现思路

1.创建菜单容器,设置好样式,并隐藏

2.监听鼠标右键事件,控制菜单的显隐性

二、实现代码

1.创建菜单

代码如下:

 <div id="menu" v-show="menuVisible" :style="{ left: menuX + 'px', top: menuY + 'px' }" style="position: absolute; background-color: rgba(255, 255, 255, 0.7); border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 10px;">
  <ul style="list-style-type: none; padding: 0;">
    <li style="padding: 5px;"><a href="javascript:void(0);" style="text-decoration: none; color: #333;"  @click="startRotateCamera()">绕点旋转</a></li>
    <li style="padding: 5px;"><a href="javascript:void(0)" style="text-decoration: none; color: #333;" @click="stopRotateCamera()">停止旋转</a></li>
    <li style="padding: 5px;"><a href="javascript:void(0);" style="text-decoration: none; color: #333;" @click="opendepthTestAgainstTerrain">开启地形深度监测</a></li>
    <li style="padding: 5px;"><a href="javascript:void(0);" style="text-decoration: none; color: #333;" @click="closedepthTestAgainstTerrain()">关闭地形深度监测</a></li>
  </ul>
</div>

2.设置菜单的显隐性

const menuVisible = ref(false);
const menuX = ref(0);
const menuY = ref(0);
const showMenu = (e) => {
  e.preventDefault();
  menuVisible.value = true;
  menuX.value = e.clientX;
  menuY.value = e.clientY;
};
const hideMenu = () => {
  menuVisible.value = false;
};

3.监听鼠标点击事件

  cesiumcontainer = document.getElementById('cesiumContainer');
  cesiumcontainer.addEventListener('contextmenu', showMenu);
  document.addEventListener('click', hideMenu);

三、实现效果

在这里插入图片描述

总结

本文是对自己学习过程的一个总结记录,大家相互学习。

标签:menuVisible,菜单,const,value,右键,Cesium,ref
From: https://blog.csdn.net/qq_52114674/article/details/139097817

相关文章

  • 8-4 【Python0036】中文级联菜单
    编写程序实现中文级联菜单,建议可以使用pypinyin或其它扩展库。 importtkinterastkfromtkinterimportttkfrompypinyinimportpinyin,Style#示例数据menu_data={"水果":\["苹果","香蕉","橙子"\],"动物":\["狗","猫"......
  • MarkdownFile新建添加到鼠标右键
    第一种方法:手动配置WIN+R进入运行窗口输入:regedit进入注册表1、找到【计算机\HKEY_CLASSES_ROOT\.md】这个目录。2、然后在此目录下修改“默认”,双击或右键修改,添加值:Typora.md。3、新建字符串值,修改名字ContentType,值为text/markdown。4、再次新建字符串值,修改名字......
  • cesium裁切面实践
    cesium裁切面实践:沙盒地址打不开的自行科学访问<style>@importurl(../templates/bucket.css);#toolbar{background:rgba(42,42,42,0.8);padding:4px;border-radius:4px;}#toolbarinput{vertical-al......
  • Senparc.Weixin.MP SDK 微信公众平台开发--自定义菜单相关
      publicvirtualIResponseMessageBaseOnImageRequest(RequestMessageImagerequestMessage);    publicvirtualIResponseMessageBaseOnLinkRequest(RequestMessageLinkrequestMessage);    publicvirtualIResponseMessageBaseOnLocationRequest(Requ......
  • vue3 Cesium添加地形的办法
    Cesium自带有地形,awaitCesium.createWorldTerrainAsync({    requestVertexNormals:true,    requestWaterMask:true    });async需要自己添加在方法前面然后在newCesium.Viewer("map",{terrainProvider:provider})provide中,第一个......
  • dxNavBar1做导航菜单,类QQ的抽屉效果(23)
     从右边的项鼠标拖到左边的分组内然后修改分组/项的名称Caption ......
  • Cesium Entity
    Point问题贴地在不需要地形的情况下:在地形设置为viewer.terrainProvider=newCesium.EllipsoidTerrainProvider()时,各地地形高度值为0,贴合椭球面,即使PointGraphics.ConstructorOptions设置了heightReference:Cesium.HeightReference.CLAMP_TO_GROUND还是会出现绘制......
  • Vue3 vue-grid-layout布局添加右键事件
    示例code<template><divclass="dashboard-container"><ulclass='contextmenu'v-show="menuConfig.visible":style="{left:menuConfig.left+'px',top:menuConfig.top+'px'}">......
  • win11 系统右键菜单 更改成 win10的
    系统右键菜单切换的两份文件代码:to_win10.bat:win11换成win10的;to_win11.bat:win10换成win11的;to_win10.batregadd"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"/f/veto_win11.batregdelete"HKCU\Software\Cl......
  • CSS JS 自适应菜单
      <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>ResponsiveMenu</t......