Deneb:Power BI自定义鼠标悬停行为与工具提示兼容问题
Deneb鼠标悬停参数导致标签Power BI工具提示失效问题
场景与问题
用Deneb制作Power BI小多图,条形/标签对应KPI指标,下方数字为日历周。通过displayOnHover参数实现鼠标悬停条形时切换标签显示,功能正常,但标签的Power BI页面工具提示仅在移除该参数时生效,条形图的工具提示不受影响。
现有代码
鼠标悬停参数配置
"params": [ { "name": "displayOnHover", "select": { "type": "point", "fields": [ "Calendarweek" ], "toggle": false, "nearest": false, "on": "mouseover", "clear": "mouseout" } } ]
标签文本筛选逻辑
{ "filter": { "param": "displayOnHover", "empty": false } }
标签标记配置(含tooltip设置)
"mark": { "type": "text", "align": "center", "dy": -50, "fontSize": 21, "fontWeight": "bold", "tooltip": true }
解决方法
1. 明确标签tooltip绑定字段
默认tooltip: true可能在参数筛选后丢失上下文,手动指定tooltip绑定的字段,确保Power BI能识别筛选上下文:
"mark": { "type": "text", "align": "center", "dy": -50, "fontSize": 21, "fontWeight": "bold", "tooltip": { "field": "Calendarweek", "type": "ordinal" } }
保证此处字段与Power BI工具提示页面的筛选字段完全匹配。
2. 分离交互触发源
给条形图和标签标记分别设置交互属性,避免参数全局影响tooltip:
- 条形图标记保留悬停触发:
"mark": { "type": "bar", "interactive": true }
- 标签标记强制开启交互,不受参数筛选影响:
"mark": { "type": "text", "align": "center", "dy": -50, "fontSize": 21, "fontWeight": "bold", "tooltip": true, "interactive": true }
3. 调整参数作用范围
将全局参数筛选改为标记层的信号控制,避免截断标签数据源:
// 标签标记的transform替换原有参数筛选 "transform": [ { "filter": "displayOnHover ? datum.Calendarweek === displayOnHover : true" } ]
这种方式仅通过参数值控制标签显示,不会修改标签的数据源上下文,从而保留tooltip触发能力。
内容的提问来源于stack exchange,提问作者Michał Ozimek
相关产品推荐
相关产品推荐

