- Html 文本({content)部分,整体展示的DOM由template和Htm属性共同组成
- template 公共部分外框部分html内容,需要加2处: (1)用于填充html的地方写上{content}标识; (2)关闭按钮加class样式:closeButton。 传空字符串或false时,不用内置模版
- Tooltip Popup都是继承DivGraphic
- DivGraphic pointerEvents:false// false时不允许拾取和触发任意鼠标事件
鼠标悬浮Tooltip提示
bindTooltip(content,options)
// 绑定Tooltipgraphic.bindTooltip(this.getInnerHtml, {direction: "top",template:`{content}`,//全局公共样式horizontalOrigin: Cesium.HorizontalOrigin.LEFT,verticalOrigin: Cesium.VerticalOrigin.CENTER,offsetX:-155,offsetY:-150,}).openTooltip();
getInnerHtml(event) {const attr = event.graphic.attr;let content = `<div class="siteWrap" ><div class="siteTit" >${attr.stationName}</div><div class="siteCont"><div class="siteList"><div>${attr.waitingNum}人</div><div>当前预约人数</div></div></div></div>`;return content},
绑定的时候就 openTooltip() 否则每次显示的内容都是绑定的上一次值的Tooltip
解除绑定的时候就 unbindTooltip() - 单个graphic或者整体图层都可以接触绑定
Tooltip点击事件
js自定义dom点击事件是获取挂在window.functiom Popup也有自带的点击事件
graphic.on(mars3d.EventType.tooltipOpen, function (event) {const container = event.container // popup对应的DOMconsole.log("打开了tooltip", container)const btnDetails = container.querySelector("#btnDetails")if (btnDetails) {btnDetails.addEventListener("click", (e) => {showXQ()})}})graphic.on(mars3d.EventType.tooltipClose, function (event) {const container = event.container // tooltip对应的DOMconsole.log("移除了tooltip", container)})
鼠标点击bindPopup提示
graphic.bindPopup(getInnerHtml(content), {direction: "right",template:content,horizontalOrigin: Cesium.HorizontalOrigin.LEFT,verticalOrigin: Cesium.VerticalOrigin.CENTER,offsetX:fontSize.f20,offsetY:-fontSize.f50}).openPopup()
绑定的时候就 openPopup() 否则每次显示的内容都是绑定的上一次值的Tooltip
解除绑定的时候就 unbindPopup() - 单个graphic或者整体图层都可以接触绑定
Popup自定义dom内部的点击事件
js自定义dom点击事件是获取挂在window.functiom Popup也有自带的点击事件
function getInnerHtml(event) {// let attr = event.graphic.attrconst inthtml = `<button id="btnDetails">更多</button>`return inthtml}graphic.on(mars3d.EventType.popupOpen, function (event) {const container = event.container // popup对应的DOMconsole.log("打开了popup", container)const btnDetails = container.querySelector("#btnDetails")btnDetails.addEventListener("click", (e) => {})})graphic.on(mars3d.EventType.popupClose, function (event) {const container = event.container // popup对应的DOMconsole.log("移除了popup", container)})
Popup
let rspPopupLayer = new mars3d.layer.GraphicLayer();this.map.addLayer(rspPopupLayer);const graphic = new mars3d.graphic.Popup({position: rspMarkPosition,style: {template:`<div style="display: flex;flex-direction: column;align-items: center;"><div class="ispt_0">${currentRspName}</div><div class="ispt_1" ></div></div>`,closeButton: false,horizontalOrigin: Cesium.HorizontalOrigin.CENTER,verticalOrigin: Cesium.VerticalOrigin.BOTTOM,distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000), // 按视距距离显示},attr: { remark: "示例8" }})this.rspPopupLayer.addGraphic(graphic)setTimeout(() => {this.rspPopupLayer.clear()}, 5000)
