【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色

引入:使用 DataV 引入地图的教程是参考别人的,主要介绍修改地图相关的样式;
引入地图

是参考别人的,这里自己再整理一遍,注意需要安装 5 版本以上的 echarts

DataV 网址:https://datav.aliyun.com/portal/school/atlas/area_selector

选中你需要的地图区域,点复制:

然后再组件中:

html 复制代码
<template>
  <div class="hello">
    <div style="width: 800px;height: 600px;" ref="aaa"></div>
  </div>
</template>

<script>
import * as echarts from "echarts"
import getShanXiMap from '../api/getShanXiMap'

export default {
  name: 'HelloWorld',
  mounted() {
    // 初始化统计图对象
    var myChart = echarts.init(this.$refs["aaa"]);

    // 获取移入的每一个省份的配置信息
    myChart.on('mouseover', function (params) {
      console.log(params);
    })

    // 显示 loading 动画
    myChart.showLoading();
    // 再得到数据的基础上,进行地图绘制
    getShanXiMap.then(res => {
      // 得到结果后,关闭动画
      myChart.hideLoading();
      // 注册地图,数据放在axios返回对象的data中
      echarts.registerMap('SX', res.data);

      var option = {
        series: [
          {
            name: '陕西地图',
            type: 'map',
            map: 'SX', // 这是上面注册时的名字
            label: {
              show: true,
              // 地图上显示的文字颜色
              color: '#0A4788'
            },
            // 重点,更改地图的颜色和当前激活部分的颜色
            itemStyle: {
              // 正常预览的状态下,更改背景色和边框线颜色
              normal: {
                areaColor: '#D9EBFE',
                borderColor: '#FFFFFF',
              },
              // 选中的状态下,更改背景色
              emphasis: {
                areaColor: '#75B6F6',
                label: {
                  show: true,
                  color: '#fff'
                }
              },
            },
            // 鼠标点击后
            select: {
              // 标签文本的样式设置
              label: {
                show: true,
                color: "#fff"
              },
              // 地图区域的样式设置
              itemStyle: {
                // 被点击后的背景颜色
                areaColor: "#75B6F6",
              },
            },
          }
        ]
      };
      myChart.setOption(option);

    })
  }

}
</script>

<style scoped lang="less">
.hello {
  width: 800px;
  height: 2000px;
  background-color: skyblue;
}
</style>

更改样式的主要是这一部分,要注意写的位置,是在series里面:

js 复制代码
// 重点,更改地图的颜色和当前移入部分的颜色
itemStyle: {
  // 正常预览的状态下
  normal: {
  	// 更改背景色和边框线颜色
    areaColor: '#D9EBFE',
    borderColor: '#FFFFFF'
  },
  // 悬浮区域
  emphasis: {
  	// 更改背景颜色
    areaColor: '#75B6F6'
  }
},

// 鼠标点击后
select: {
  // 标签文本的样式设置
  label: {
    show: true,
    color: "#fff"
  },
  // 地图区域的样式设置
  itemStyle: {
    // 被点击后的背景颜色
    areaColor: "#75B6F6",
  },
},

预览效果:

补充:

相关推荐
敲敲了个代码7 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
张雨zy8 小时前
Pinia 与 TypeScript 完美搭配:Vue 应用状态管理新选择
vue.js·ubuntu·typescript
dly_blog8 小时前
Vue 响应式陷阱与解决方案(第19节)
前端·javascript·vue.js
消失的旧时光-19438 小时前
401 自动刷新 Token 的完整架构设计(Dio 实战版)
开发语言·前端·javascript
console.log('npc')9 小时前
Table,vue3在父组件调用子组件columns列的方法展示弹窗文件预览效果
前端·javascript·vue.js
用户47949283569159 小时前
React Hooks 的“天条”:为啥绝对不能写在 if 语句里?
前端·react.js
我命由我123459 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
用户479492835691510 小时前
给客户做私有化部署,我是如何优雅搞定 NPM 依赖管理的?
前端·后端·程序员
C_心欲无痕10 小时前
vue3 - markRaw标记为非响应式对象
前端·javascript·vue.js
qingyun98910 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构