jvectormap如何在选择区域时保持当前颜色?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvectormap如何在选择区域时保持当前颜色?相关的知识,希望对你有一定的参考价值。

这是我的问题,我有不同国家的颜色比例。当我选择一个国家,它的颜色变化,我不想。

我只想使用stroke属性(没有fill属性)来显示所选区域。

问题是填充的默认颜色是“黄色”。我尝试将所选区域的fill属性设置为“none”,但在选中时会删除当前颜色。

你们有办法解决这个问题吗?

        $('#worldMap').vectorMap({
        map: 'world_mill_en',
        series: {
            regions: [{
                scale: ['#C1E712', '#5F7209'],
                values: countryHitCounts,
            }]
        },
        regionStyle: {
            selected: {
                fill: <= is there a keyword to not change the color when selected??
                stroke: 'red',
                "stroke-width": 1,
            },
        },
        regionsSelectable: true,
        selectedRegions: countrySelected,
        onRegionSelected: function (event, code, isSelected, selectedRegions) {
               //some code...
        },
    });

编辑:在minify js代码源文件中,我更改了所选区域的默认样式。选中:{fill:“yellow”}选中:{}它可以工作,但如果你有一个更好的解决方案而不更改源文件,我会接受它。

答案

我遇到了同样的问题,似乎对我有用的是用无效的十六进制代码覆盖选定的填充。例如:

regionStyle: {
            selected: {
                fill: '#Z34FF9'
            }
        },

这似乎将它注册为覆盖,但实际上并没有应用它,留下我的原始颜色。

另一答案

您只需要阻止点击的默认操作:

,
onRegionClick: function(event, code){
    event.preventDefault();
    // your "some code" of region selected
}
另一答案

Norrec的答案对我不起作用,但我可以在创建地图之前覆盖类默认值。无需修改源代码!

jvm.Map.defaultParams.regionStyle.selected = {};
map = new jvm.Map({
    map: 'world_mill',
    container: jQuery('#world-map'),
    regionStyle: {
        initial: {
            fill: "#F6F6F6",
        },
      selected: {
        stroke: '#FF00FF',
        "stroke-width": 0.5,
      }
    },
}

以上是关于jvectormap如何在选择区域时保持当前颜色?的主要内容,如果未能解决你的问题,请参考以下文章

在 html 选择中悬停或选择项目时,如何避免更改背景颜色?

如何在 ToggleButton 中选择时更改 SVG 图标颜色

如何在颤动中更改文本按钮颜色?

选择其他按钮时,ListView 突出显示所选项目颜色不会保持不变

PyQt5 QTableView:如何在保持默认样式/颜色的同时禁用用户交互/选择?

如何获取当前控制台背景和文本颜色?