You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox GL JS 要素悬停状态在外部嵌入环境中无法工作求助

Mapbox GL JS 要素悬停状态在外部嵌入环境中无法工作求助

大家好,我最近在做Mapbox GL JS地图开发时卡壳了,想请各位帮忙看看:

我给地图里的「available-countries」图层加了鼠标悬停变色的效果,在Mapbox Studio里测试时完全正常,但把地图嵌入到iframe或者外部预览页面时,这个悬停状态就彻底失效了——鼠标移上去完全没反应。

我用了Mapbox官方思路写的交互逻辑,代码大概是这样的:

let feature = null;
map.addInteraction("move-handler", {
  type: "mousemove",
  target: {
    "layerId": "available-countries"
  },
  handler: (e) => {
    if (e.feature) {
      // 先把之前的悬停要素状态重置
      if (feature) {
        map.setFeatureState(feature, { "hover-state": false });
      }
      feature = e.feature;
      console.log(feature); // 这里能正常打印要素对象,说明handler触发了
      map.setFeatureState(feature, { "hover-state": true });
    } else {
      // 鼠标移出要素时重置状态
      if (feature) {
        map.setFeatureState(feature, { "hover-state": false });
        feature = null;
      }
    }
  }
});

我排查了半天,控制台能正常输出要素信息,说明这个mousemove的handler确实被触发了,但就是没法通过setFeatureState把hover-state状态应用到要素上,地图上的国家颜色完全没变化。

有没有大佬遇到过类似的情况?或者能帮我揪出代码里的问题,为啥在外部嵌入环境里状态就不生效了?

备注:内容来源于stack exchange,提问作者JakePlatford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:42:59