javascript - 在 SVG 路径悬停时显示来自 JSON 的数据?

标签 javascript css json svg

我正在制作美国的 SVG map ,当您将鼠标悬停在显示人口的每个州上时,我想显示一个指向每个州的小信息窗口,类似于 Google map 上的信息窗口。不幸的是,我不太擅长 JSON,所以我被困在了这一点上。

目前我有美国的 SVG map ,通过 CSS 悬停时填充颜色会发生变化。我有一组 JSON 数据示例,想知道如何将其合并到我的 map 中,以便在悬停时显示人口。

这是 JSON 数据的示例:

[
  {
    "id":"AL", 
    "population":"253045"
  },
  {
    "id":"AR",
    "population":"1529923"
  },
  {
    "id":"AZ",
    "population":"352416t"
  }
]

由于 SVG 路径,有相当多的 HTML,因此我不会将其粘贴到此处,但您可以看到我目前拥有的内容 on this JSFiddle

最佳答案

要获取有关悬停状态的信息,首先将您的信息放入一个数组中,以便可以访问它:

var info = [
  {
    "id":"AL", 
    "population":"253045"
  },
  {
    "id":"AR",
    "population":"1529923"
  },
  {
    "id":"AZ",
    "population":"352416t"
  }
]

然后您可以通过使用 filterid 键从数组中获取信息:

info.filter(function(state) {return state.id === currState});

这是一个示例,您可以在其中获取悬停状态的人口:

$('path').hover(function() {
    var currState = $(this).attr('id');
    var currStateInfo = info.filter(function(x) {return x.id == currState});
    if (currInfo[0])
        console.log(currInfo[0].population);
});

这是一个工作示例:https://jsfiddle.net/4tasLo6k/

关于javascript - 在 SVG 路径悬停时显示来自 JSON 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208641/

相关文章:

json - 获取 Steam 元素价格

javascript - ng-file-upload 不会将 jpg 图像转换为 png

javascript - 使用javascript从php显示解析json

javascript - JS : Function vs Class differences

jQuery - 使用 Live 打开窗口,然后关闭它?

javascript - 我试图使用带按钮的 figcaption 将图像彼此相邻放置 HTML 和 CSS

javascript - 以 100% 宽度动态调整 iFrame 的大小

html - Bootstrap 4 - 导航栏扩展中缺少填充

python - 如何将 request.get 的响应转换为 DataFrame?

php - 将数据库查询结果格式化为 JSON 数组并读入表单