前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cesium入门之三:隐藏Cesium初始化页面小部件的两种方法

Cesium入门之三:隐藏Cesium初始化页面小部件的两种方法

作者头像
九仞山
发布2023-10-14 08:58:20
9380
发布2023-10-14 08:58:20
举报
文章被收录于专栏:前端漫步

上一级我们实现了第一个三维地球,但是在这个页面上有很多小部件,我们不想让其显示,应该如何设置呢?这一节我们通过两种方式来隐藏小部件;先看下最终效果

在这里插入图片描述
在这里插入图片描述

方法1:通过js代码实现

在js代码中,通过在new Cesium.Viewer(container, options)的第二个参数options中配置小部件的显示状态 这里的options是一个Viewer.ConstructorOptions类型,它是Viewer构造函数的初始化选项,Cesium为我们提供了很多初始化选项,常用的配置选项如下;更多Viewer.ConstructorOptions类型查看Cesium的官方文档

在这里插入图片描述
在这里插入图片描述

修改const viewer = new Cesium.Viewer("cesiumContainer")代码如下

代码语言:javascript
复制
const viewer = new Cesium.Viewer("cesiumContainer",{
      animation:false,//动画小部件
      baseLayerPicker:false,//地图图层组件
      fullscreenButton:false,//全屏组件
      geocoder:false,//地理编码搜索组件
      homeButton:false,//首页组件
      infoBox:false,//信息框
      sceneModePicker:false,//场景模式
      selectionIndicator:false,//选取指示器组件
      timeline:false,//时间轴
      navigationHelpButton:false,//帮助按钮
      navigationInstructionsInitiallyVisible:false
})

刷新浏览器,可以看到上面设置false的小部件已经不显示了,效果如下

在这里插入图片描述
在这里插入图片描述

此时我们发现,下方的CESIUM版权信息依然存在,这个是Cesium的版权信息,我们在配置项中无法使其隐藏,我们借助浏览器的开发者工具,查看到版权信息对应的div的类名是cesium-viewer-bottom

在这里插入图片描述
在这里插入图片描述

我们可以通过设置cesium-viewer-bottom类的display属性来显示和隐藏版权信息;可以在CSS中设置该属性,也可以在JavaScript代码中设置该属性;关于CSS中设置的方法在下面方法2中介绍,这里我们通过JavaScript代码的方式来实现; 首先我们观察下viewer对象,我们通过console.log(viewer)在控制台打印下viewer类,

在这里插入图片描述
在这里插入图片描述

在viewer对象中,我们可以找到一个_cesiumWidget属性,它是一个CesiumWidget对象,在该对象里面,我们能找到一个creditContainer对象,它对应的就是div.cesium-viewer-bottom,我们可以通过如下代码来隐藏版权信息

代码语言:javascript
复制
  // 隐藏logo信息
  viewer._cesiumWidget._creditContainer.style.display = 'none'

方法2 通过CSS方式实现小部件的隐藏

通过查看页面元素,我们可以找到各个小部件对应的div,我们可以在css中将其display属性设置为none来隐藏小部件,代码如下

代码语言:javascript
复制
<style>
    @import url(./Build/Widgets/widgets.css);
    * {
      margin: 0;
      padding: 0;
    }
    /* 版权信息 */
    .cesium-widget-credits{
      display: none !important;
    }
    /* 小部件 */
    .cesium-viewer-toolbar,/*右上角小部件按钮组*/
    .cesium-viewer-animationContainer,/*左下角动画组件*/
    .cesium-viewer-timelineContainer,/*时间线组件*/
    .cesium-viewer-fullscreenContainer,/*全屏组件*/
    .cesium-viewer-bottom{
      display: none !important;
      visibility: hide !important;
    }
  </style>

两种方式的区别

通过js代码方式隐藏小部件的情况,小部件不会在dom中创建元素,

在这里插入图片描述
在这里插入图片描述

而通过css方式隐藏小部件时,dom元素已经渲染,css只是控制其display属性来使其隐藏而已,实际dom元素依然存在

在这里插入图片描述
在这里插入图片描述

好了,这节就到这里吧,喜欢的小伙伴关注点赞收藏哦!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法1:通过js代码实现
  • 方法2 通过CSS方式实现小部件的隐藏
  • 两种方式的区别
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档