new mars3d.graphic.Popup({实现插入轮播图组件的思路参考

发布时间:2024年01月18日

需求场景:

官网的示例链接的浮动监控点示例,实现的是播放视频。

但是我的需求场景是播放轮播图,此时该怎么实现呢?

示例地址:

功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技

相关代码:

function addRandomGraphicByCount(graphicLayer, position) {

? const graphicImg = new mars3d.graphic.DivGraphic({

? ? position,

? ? style: {

? ? ? html: ` <div class="mars3d-camera-content">

? ? ? ? ? ? ? ? ? ? ? <img class="mars3d-camera-img" src="img/icon/camera.svg" >

? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? <div class="mars3d-camera-line" ></div>

? ? ? ? ? ? ? ? ? ? <div class="mars3d-camera-point"></div>

? ? ? ? ? ? ? ? ? `,

? ? ? offsetX: -16,

? ? ? distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 100000)

? ? },

? ? popup: `<video src='http://data.mars3d.cn/file/video/lukou.mp4' controls autoplay style="width: 300px;" ></video>`,

? ? popupOptions: {

? ? ? offsetY: -170, // 显示Popup的偏移值,是DivGraphic本身的像素高度值

? ? ? template: `<div class="marsBlackPanel animation-spaceInDown">

? ? ? ? ? ? ? ? ? ? ? ? <div class="marsBlackPanel-text">{content}</div>

? ? ? ? ? ? ? ? ? ? ? ? <span class="mars3d-popup-close-button closeButton" >×</span>

? ? ? ? ? ? ? ? ? ? ? </div>`,

? ? ? horizontalOrigin: Cesium.HorizontalOrigin.LEFT,

? ? ? verticalOrigin: Cesium.VerticalOrigin.CENTER

? ? }

? })

? graphicLayer.addGraphic(graphicImg)

}

解决思路:

1.new mars3d.graphic.Popup({不仅支持字符串也支持传入一个dom对象,只要能够拿到轮播组件的dom对象,传入即可。

思路:

?1.?先加载出轮播图组件(可以不显示)原生js获取dom。

2.?new?Vue?之后可以拿到dom对象?

3.?通过webcomponents?自定义?html(可当成html使用)

参考:

开源版本vue基础项目或功能示例内
src\widgets\basic\query-poi\query-popup.vue

基础项目链接:mars3d-vue-project: 在Vue 3.x技术栈下的Mars3D平台 基础项目

博客地址:使用vue组件实现mars3d的popup或tooltip_vue中3d页面上出现个小弹框怎么设计-CSDN博客

浮动轮播图效果

文章来源:https://blog.csdn.net/m0_69803146/article/details/135672442
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。