Jvectormap突出显示多个国家

2024-03-11

我目前正在使用J向量图 http://jvectormap.com/并试图在将鼠标悬停在文本上时突出显示多个国家,我已经达到了这样的程度:如果我将鼠标悬停在“非洲”一词上,它将突出显示整个地图,当我将鼠标悬停在内容上时,我将如何过滤它以仅突出显示非洲非洲的名称。

目前我正在使用创建一个大陆列表jQuery.each我回来了continentCodes,其中包含所有国家/地区代码(ZA、US)并为其分配了颜色...我尝试执行以下操作:

jQuery('.continentLink').hover(function() {
 jQuery.each(mapObject.mapData.paths, function(i, val) {
  if (val.continent == "africa"){
   continentCodes[i] = "#3e9d01";
   mapObject.series.regions[0].setValues(continentCodes);
  }
 });
});

但后来我重复每个陈述,但我无法获得动态大陆。

这里有一个JSFIDDLE http://jsfiddle.net/dawidvdh/EpGep/8/

JS 如下:

jQuery(function(){
//JSON MARKERS
var markers = [{latLng: [-34.033333300000000000, 23.066666700000040000], name: 'Knysna', info:'its got a lake...'},
    {latLng: [-33.924868500000000000, 18.424055299999963000], name: 'Cape Town', info:'its nice...'}];
//JSON MARKERS  

//JSON STYLING
var markerStyle = {initial: {fill: '#F8E23B',stroke: '#383f47'}};
var regionStyling = {initial: {fill: '#128da7'},hover: {fill: "#A0D1DC"}};
//JSON STYLING

//GLOBAL VARIABLES
var countryList = "", continentList = "";
var continentCodes = {};
//GLOBAL VARIABLES

//INIT MAP PLUGIN
jQuery('#world-map').vectorMap({
    map: 'world_mill_en',
    normalizeFunction: 'polynomial',
    markerStyle:markerStyle,
    regionStyle:regionStyling,
    backgroundColor: '#383f47',
    series: {regions: [{values: {},attribute: 'fill'}]},
    markers: markers,
    onRegionClick:function (event, code){
        jQuery('#world-map').vectorMap('set', 'focus', code);
    },
    onMarkerClick: function(events, index){
        jQuery('#infobox').html(markers[index].name);
    }
});
//INIT MAP PLUGIN

var mapObject  = jQuery('#world-map').vectorMap('get', 'mapObject');

//LIST COUNTRIES & CONTINENTS
function createList() {

    //Get list
    jQuery.each(mapObject.mapData.paths, function(i, val) {
        countryList += '<li><a id='+i+' class="countryLink">'+val.name+'</a></li>';
        continentList += '<li><a id='+val.continent+' class="continentLink">'+val.continent+'</a></li>';

        continentCodes[i] = "#3e9d01";
        return continentCodes;
    });
    //display continents
    jQuery('#continentList').html(continentList);

    //display countries
    jQuery('#countryList').html(countryList);

    //Create Hover Function
    jQuery('.continentLink').hover(function() {
        mapObject.series.regions[0].setValues(continentCodes);
        console.log(continentCodes);
    });

    //Create ZOOM Function
    jQuery('.countryLink').click(function(e) {
        jQuery('#world-map').vectorMap('set', 'focus', this.id);
    });
}

createList();
});

和 HTML:

  <div id="world-map" style="width: 960px; height: 400px"></div>
    <div id="infobox"></div>
        <ul id="continentList"></ul>
        <ul id="countryList"></ul>

我已经重组了你的代码,请参阅JSFIDDLE http://jsfiddle.net/dawidvdh/EpGep/10/这是更正后的 JavaScript:

jQuery(function(){
//JSON MARKERS
var markers = [{latLng: [-34.033333300000000000, 23.066666700000040000], name: 'Knysna', info:'its got a lake...'},
    {latLng: [-33.924868500000000000, 18.424055299999963000], name: 'Cape Town', info:'its nice...'}];
//JSON MARKERS  

//JSON STYLING
var markerStyle = {initial: {fill: '#F8E23B',stroke: '#383f47'}};
var regionStyling = {initial: {fill: '#128da7'},hover: {fill: "#A0D1DC"}};
//JSON STYLING

//GLOBAL VARIABLES
var countryList = "", continentList = "";
var resultsDup = {};
var continentCodes = {};
//GLOBAL VARIABLES

//INIT MAP PLUGIN
jQuery('#world-map').vectorMap({
    map: 'world_mill_en',
    normalizeFunction: 'polynomial',
    markerStyle:markerStyle,
    regionStyle:regionStyling,
    backgroundColor: '#383f47',
    series: {regions: [{values: {},attribute: 'fill'}]},
    markers: markers,
    onRegionClick:function (event, code){
        jQuery('#world-map').vectorMap('set', 'focus', code);
    },
    onMarkerClick: function(events, index){
        jQuery('#infobox').html(markers[index].name);
    }
});
//INIT MAP PLUGIN

var mapObject  = jQuery('#world-map').vectorMap('get', 'mapObject');

//LIST COUNTRIES & CONTINENTS
jQuery.each(mapObject.mapData.paths, function(i, val) {

    countryList += '<li><a id='+i+' class="countryLink">'+val.name+'</a></li>';

    //remove duplicate continents
    var resultsList = val.continent;
    if (resultsDup[resultsList]) {
        jQuery(this).remove();
    }else{
        resultsDup[resultsList] = true;
        continentList += '<li><a id='+val.continent+' class="continentLink">'+val.continent+'</a></li>';
    }
    //remove duplicate continents


});
//display countries
jQuery('#countryList').html(countryList);

//display continents
jQuery('#continentList').html(continentList);

var continentId =""
function getID(continentId){
    jQuery.each(mapObject.mapData.paths, function(i, val) {
            if (val.continent == continentId){
                continentCodes[i] = "#3e9d01";
                mapObject.series.regions[0].setValues(continentCodes);
            }
    });
}

function removeGetID(continentId){
    jQuery.each(mapObject.mapData.paths, function(i, val) {
            if (val.continent == continentId){
                continentCodes[i] = "#128da7";
                mapObject.series.regions[0].setValues(continentCodes);
            }
    });
}

//LIST COUNTRIES & CONTINENTS TEMP
jQuery('.continentLink').hover(function(e) {
    continentId = this.id;
    getID(continentId);
}, function(){
    removeGetID(continentId);
});

//Zoom to Country Function
jQuery('.countryLink').click(function(e) {
    jQuery('#world-map').vectorMap('set', 'focus', this.id);
});

//Continent Hover function

});

Enjoy :D

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jvectormap突出显示多个国家 的相关文章

  • 在表单提交时发送 div 的值

    我正在尝试提交一个包含几个不同输入的表单 这些输入都工作正常 然而 输入之一是文本区域 某种程度 我必须将其更改为内容可编辑的 div 主要是因为我创建了自己的粗体 斜体和下划线按钮 这些按钮不适用于普通文本区域 问题是提交时的表单没有将文
  • 如何突出显示最靠近鼠标的文本行?

    我有一篇很长的文本 我想为用户提供阅读帮助 当前行应该突出显示 为了更简单 我将只使用鼠标的 Y 坐标 这样 鼠标指针就不会妨碍 我有一个带有 id 的大 DIVcontent它用类填充整个宽度和一个小 DIVcontent对于文本 请参阅
  • 如何在 ReactJs 中使用 Hooks useState 编写多行状态

    React 16 9 我知道这class component state class JustAnotherCounter extends Component state count 0 相当于使用Hooks useState functi
  • 使用 JavaScript 或 jQuery 设置文本框的最大长度

    我想用 JavaScript 或 jQuery 更改文本框的最大长度 我尝试了以下方法 但似乎没有帮助 var a document getElementsByTagName input for var i 0 i
  • JS:按每个类别的最大值过滤对象数组

    什么是最有效 优雅的方式来实现类似sql的过滤效果 我想过滤它们并只获取某个组中最大值的对象 这是我的代码 它可以工作 但可能不是最好的方法 uniqueValues arr gt new Set arr getMaxTimeOf arr
  • 有没有办法检测 Alt 键被按在哪一侧(右或左)?

    Is there a way that we can detect which side the Alt key was pressed on i e distinguish between left or right Alt I saw
  • Excel 到 JSON 的 JavaScript 代码?

    我想将excel表格数据转换为json 它必须是动态的 因此有一个上传按钮 用户可以在其中上传 Excel 工作表 然后将数据转换为 json 您能给我提供 javascript 代码吗 我尝试了 SheetJS 但无法弄清楚 我更喜欢直接
  • 如何在Redis中进行持久化存储?

    关闭redis服务器后 使用set存储的值被破坏 在这里我找到了使用持久性存储的方法 有人帮助我 如何使用javascript实现这一点 我想将客户端的一些值存储在 redis 数据库中 并且必须在其他客户端中使用该值 您需要配置 Redi
  • 为什么自动关闭脚本元素不起作用?

    浏览器无法正确识别的原因是什么 只有这一点是公认的 这是否打破了 XHTML 支持的概念 注意 此声明至少对于所有 IE 6 8 beta 2 都是正确的 XHTML 1 规范的非规范性附录 HTML 兼容性指南 指出 3 元素最小化和空元
  • Doctype的实际使用

    虽然我在 w3 org 上浏览了大量有关 Doctype 的信息并了解不同类型的 doctype 过渡型 严格型 框架集 我还是不太清楚在页面上使用Doctype的实际用途是什么 I mean 是为了阻止开发商 在代码中使用某些标签 例如
  • React Native:如何在组件中添加脚本标签

    我正在尝试在 React Native 应用程序的组件内添加标签 下面是我的代码 它似乎不起作用 谁能告诉我如何解决这个问题 import React Component from react import PropTypes from p
  • JavaScript 删除除一个之外的所有隐藏元素

    有人帮我找到了 JavaScript从提交中删除隐藏表单字段的代码 https stackoverflow com questions 7745191 javascript removing contents of form hidden
  • Angular ui-router:链接不可点击

    我尝试运行 angular ui router 来处理我的视图 但我遇到了问题 以下视图的两个链接不可点击 带有链接标签的角度更改变量 但我无法单击 我有这样的观点 h1 App h1
  • 为什么 ECMAScript 5 中的 Object 没有 forEach 方法?

    ECMAScript 5 的array forEach callback thisArg 迭代数组非常方便 并且比 for 语法有很多优点 这样更简洁 它不会创建我们仅用于迭代目的的变量 它为循环的局部变量创建可见范围 它提高了性能 有没有
  • jQuery醉酒:手动触发器和delayIn

    我正在使用 jQuery 的 Tipsy 插件 每当我尝试使用手动触发器和delayIn调用醉酒时 delayIn似乎不起作用 interest tipsy trigger manual gravity n html true delayI
  • 查找数组中总和等于给定值的最小元素

    我试图找出数组中总和等于的最小元素 给定的输入 我尝试了几个输入总和 但只能找到一个 在第一种情况下配对 而我需要实现的不仅仅是一对 var arr 10 0 1 20 25 30 var sum 45 var newArr console
  • 按数字字段排序,其中时间戳位于 Cloud Firestore 中的给定日期?

    在我的 Firestore 数据库中 我的集合中有一些文档 如下所示 name Item 1 count 2 timestamp January 29 2018 at 3 43 12 PM UTC 8 我正在尝试查询这个集合 以便文档按以下
  • Nodejs + mongodb:如何查询 $ref 字段?

    我将 MongoDB 与 Nodejs REST 服务一起使用 该服务公开了存储在其中的数据 我有一个关于如何查询使用 ref 的数据的问题 这是一个对象的示例 其中包含对花药集合中另一个对象 详细信息 的引用 id ObjectId 59
  • CSS3 过渡卡住了

    我们的新网站上正在进行很多转换 有一个特别之前工作得很好 但自从添加谷歌地图后 某种过渡效果不会触发 此外 它还会禁用网站上的所有其他过渡效果 直到触发另一个 javascript 函数 我不知道为什么 但这些就是事实 该问题似乎仅限于 S
  • JQuery - $.ajax() - 使用 JSONP 跨源 - 仅在 IE 8 中获取“parsererror”(在 IE 7 中工作)

    我有以下代码来执行跨域请求并获取 JSONP 数据 通过回调方法包装的 JSON 我已经验证我使用包装 JSON 数据的回调方法正确获得了响应 它在 IE7 中工作得很好 回调 cb 被调用 但在 IE8 中则不然 document rea

随机推荐

  • 动态加载用户控件 ASP.net 中的单选选项 GroupName 问题

    我有用户控制 table tr td td tr table
  • 如何自定义FirebaseUI-Web主题

    我只想定制徽标和颜色 有谁知道解决方案吗 我只看到了安卓的解决方案 下面的代码 if process browser const firebaseui require firebaseui console log firebaseui co
  • (python) Telegram bot - 如何定期发送消息?

    我对我的电报机器人感到左右为难 假设我必须创建一个函数 每周 每月一次向每个连接到机器人的用户询问一个问题 def check the week bot update reply keyboard YES NO bot send messa
  • 可以在没有 Visual Studio 的情况下安装 Roslyn 最终用户预览版吗?

    Roslyn 最终用户预览是 VSIX Visual Studio 扩展 但它取代了系统 NET Framework 安装中的编译器 这样从命令行涉及 csc exe 将开始使用 Roslyn 是否可以在未安装 Visual Studio
  • 为什么 C# 不需要显式转换来将 Long 转换为 Double?

    首先 抱歉我的英语不好 我有代码片段 long x 9223372036854775807L double f x Console WriteLine x Console WriteLine f 输出是 922337203685477580
  • 如何使用 xmlrpclib Python 库向 WordPress 帖子添加缩略图?

    我正在尝试开发一个Python脚本 它需要将内容发布到wordpress博客 问题是我需要将图像设置为帖子的缩略图 但我不知道如何做到这一点 这是将某些内容 没有缩略图 发布到 WP 的代码示例 import xmlrpclib user
  • 如何将带有 mtl 和纹理的 obj 上传到存储桶?

    正如标题所示 如何上传 obj 模型的材质文件和纹理 因为它们是硬编码在 obj 文件中的 我可以上传压缩的目录结构或多个关系正确的文件 因为 obj 的硬编码性质 吗 这是 dotty 试用网站上的带有材质和纹理的 OBJ 模型 http
  • 保持 OAuth 访问令牌的秘密有多重要?

    一旦我收到使用 OAuth 的网站 例如 facebook 的访问令牌 保守这个秘密有多重要 如果有人掌握了它 会发生什么恶意的事情吗 我想知道将令牌保存在 cookie 或会话中是否是一个坏主意 是的 访问令牌相当于您的用户名 密码 大多
  • SYMPY:特征向量计算后如何细化整个矩阵?

    我想使用 sympy 来计算特征向量 我用 jupyter 笔记本做了一些试验 from sympy import a b symbols a b real True M Matrix a b b a T D M diagonalize n
  • 使用没有会话或 cookie 数据的 iFrame(隐身)

    如果您使用iFrameHTML 文档中的元素 子页面将加载来自浏览器的所有会话和 cookie 数据 例如 h1 Stack Overflow in an iFrame h1 暂时忽略 SO 实际上不允许自己加载到 iFrame 中 如果是
  • 将 csv 文件添加到 HTTP POST

    我想发送一个邮递员 HTTP POST 在此请求中 对于关键 fisier 我想附加一个 csv 文件 如何做到这一点 https i stack imgur com Pnkii png https i stack imgur com Pn
  • 通过 websockets 发送 popen 的输出

    我使用 popen 和 fgets 异步读取 tcpdump 的输出 下面的代码应该在命令行中运行 而不是使用 apache 并在浏览器中查看它 handle popen tcpdump nnX r while true output fg
  • CSS:在绝对定位的div之后有一个div

    我想知道如何做到这一点 我当前的标记如下 div div class widget style width 313px height 269px Hello div div class widget style width 80px hei
  • Kotlin 用于基于 Cordova/Ionic 的插件

    是否可以使用 Kotlin 作为框架 语言作为 Cordova 插件 第一个问题是它没有复制 kt 文件 因为它查找 java 或 xml 如果是这样 有人知道如何设置的参考吗 最近我一直在 Cordova 插件中使用 Kotlin 但是当
  • 可以使用webpack分别生成CSS和JS吗?

    I have 我想要捆绑的 JS 文件 我想要编译为 CSS 的 LESS 文件 将 imports 解析为单个包 我希望将它们指定为两个单独的输入并具有两个单独的输出 可能通过 extract text webpack plugin We
  • 如何在netbeans中运行php文件

    我创建了一个扩展名为 php 的文件 那么我应该如何使用 netbeans 运行这个文件 我已经下载了带有所有捆绑功能的 netbeans 6 8 我已经看到 php 文件可以与 netbeans 一起运行 所以我想问一下 请解释一下 运行
  • SQL 中的多个 LIKE 语句

    我有一个包含有关零售商店信息的表 我有一个零售连锁店名称列表 沃尔玛 塔吉特 伊顿等 当用户选择一个时 我基本上会运行一个查询来查找与该连锁店有关的任何信息 SELECT FROM stores WHERE store name LIKE
  • 如何使用 dotnet test 命令发布结果

    我有一个用 dotnet core 编写的测试项目 这需要以 XML 或 HTML 格式发布结果 有没有办法使用相同的命令将结果发布到特定目录 result directory不适合我 你可以看到所有dotnet test通过执行选项dot
  • 在嵌入式 vimeo 播放器上添加覆盖层

    这是我嵌入到我的网站中的视频 Fiddle https jsfiddle net hgtvqatm 问题是 它很小 并且播放和其他按钮覆盖了半个屏幕 那么有什么方法可以在播放器上添加图层图像 当您单击该图像时 视频应该开始播放 http c
  • Jvectormap突出显示多个国家

    我目前正在使用J向量图 http jvectormap com 并试图在将鼠标悬停在文本上时突出显示多个国家 我已经达到了这样的程度 如果我将鼠标悬停在 非洲 一词上 它将突出显示整个地图 当我将鼠标悬停在内容上时 我将如何过滤它以仅突出显