前言
缺少前置学习使用资料,请自行查阅:[https://blog.csdn.net/weixin_44402694/article/details/123110136](https://blog.csdn.net/weixin_44402694/article/details/123110136)
以下示例使用到的公共静态资料,不建议下载,建议官网自行下载超图Build资源,示例所涉及图片会在示例使用到时提供出来。如有需要可下载:[https://download.csdn.net/download/weixin_44402694/82180350](https://download.csdn.net/download/weixin_44402694/82180350)。
鼠标移入滑过模型显示手型或自定义图标。
使用
-
使用到图标
-
效果:一种显示为手型,一种为自定义图标
-
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>鼠标设置为手型</title>
<link href="./public/Build/Cesium/Widgets/widgets.css" rel="stylesheet" />
<script
type="text/javascript"
src="./public/Build/Cesium/Cesium.js"
></script>
<style>
* {
margin: 0;
padding: 0;
}
html,
body,
#cesium-container {
width: 100%;
height: 100%;
}
.draw-cursor {
cursor: url('./public/static//img//marker.png'), auto;
}
</style>
</head>
<body>
<div id="cesium-container" />
<script>
let viewer = null,
scene = null
window.onload = function () {
viewer = new Cesium.Viewer('cesium-container')
scene = viewer.scene
setS3MServiceHandler()
setMouseTypeWhenMouseMoveHandler()
}
// 添加由supermap iserver上发布的s3m服务
function setS3MServiceHandler() {
scene.open(
'http://www.supermapol.com/realspace/services/3D-NewCBD/rest/realspace'
)
}
// 鼠标移动设置为手型
function setMouseTypeWhenMouseMoveHandler() {
const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas) // event事件处理程序
handler.setInputAction((e) => {
const currentMoveObj = scene.pick(e.endPosition)
if (currentMoveObj) {
// 鼠标滑过模型
viewer.enableCursorStyle = false
viewer._element.style.cursor = ''
document.documentElement.style.cursor = 'pointer'
// document.body.classList.add('draw-cursor') // 设置为自定义的图标
} else {
// 鼠标滑过场景
viewer.enableCursorStyle = true
document.documentElement.style.cursor = ''
// document.body.classList.remove('draw-cursor')
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
}
</script>
</body>
</html>