交互: Hover Script 悬停脚本
为图形绑定鼠标移入/移出时执行的 JavaScript:移入(Pointer Enter)做高亮、提示等效果,移出(Pointer Leave)还原,只在导出页面里真实鼠标交互时触发。
它是什么、用来做什么
Hover Script(悬停脚本)属于“交互(Interactions)”类行为。它用于给一个图形绑定两段 JavaScript:一段在鼠标移入图形时执行,一段在鼠标移出时执行,常用于悬停高亮、临时提示、强调当前指向的设备等轻量视觉反馈。它和 Click Script 一样属于“交互”行为,只有在导出后的 HQ VISU 页面里、用户用鼠标真实交互时才会运行;在 PowerPoint 里编辑幻灯片时不会触发。注意悬停脚本没有自动还原:移入时改了什么,要在移出脚本里自行恢复。
使用方法:编辑器里要填的字段
选中图形后打开 Hover Script 行为编辑器。触发方式(Trigger)固定显示为 Pointer Move(指针移动),编辑器里有两个脚本框,都是完整的脚本位置(可写多行逻辑、调用 ReadTag*/WriteTag*,也允许 setTimeout、fetch 等异步):
- Pointer Enter(鼠标移入,文档中也称 Mouse Over):鼠标进入图形时执行的脚本。
- Pointer Leave(鼠标移出,文档中也称 Mouse Out):鼠标离开图形时执行的脚本,用来还原移入时所做的改动。
- 脚本里可用的上下文对象:object、objects、event(鼠标相关)以及 tag、page、presentation、shape、qtedit、globals、escript。
- object 指当前图形的 DOM 元素,可直接改它的样式(如 object.style.opacity);shape.name 是图形名称。
- 注意:悬停脚本没有 Enable/Condition 启用门(这点和 Click Script 不同),两段脚本会直接执行。
// Pointer Enter(鼠标移入)
object.style.opacity = "0.7";
// Pointer Leave(鼠标移出)
object.style.opacity = "1";
适用场景
适合纯展示性的鼠标反馈,不需要点击就能给用户提示。
- 设备图标悬停高亮:鼠标移到泵/阀门上时降低透明度或加描边突出,移开恢复,提示“这个可点”。
- 临时信息提示:移入时用 qtedit 在页面上显示一段说明或边框强调,移出时清除,不打断用户操作。
边界与易错点
几个真实需要注意的地方:
- 移入做的修改不会自动撤销:必须在 Pointer Leave 里写对应的还原逻辑,否则鼠标离开后效果会一直留着。
- 只在导出/宿主页面的真实鼠标交互时运行,PowerPoint 编辑态不触发,需在导出后验证。
- 若在悬停里写标签(WriteTag*),写入仍要经过宿主的权限/确认/异步处理,不能假定“调用即成功、即同步”;悬停一般只做视觉反馈,避免高频写值。
图示 1: Hover Script 编辑器
分别填鼠标移入(Pointer Enter)和移出(Pointer Leave)两段脚本,移出脚本负责还原。