用vue 写一个中国地图省份的代码
<template>
<div>
<div class="map-container">
<svg viewBox="0 0 1000 800">
<g class="provinces">
<path
v-for="(province, index) in provinces"
:key="index"
:d="province.path"
:class="province.class"
@mouseover="onProvinceMouseOver(province)"
@mouseout="onProvinceMouseOut(province)"
/>
</g>
</svg>
</div>
<pre><code><div class="detail-container">
<h2>{{ selectedProvince.name }}</h2>
<p>{{ selectedProvince.description }}</p>
</div>
</code></pre>
</div>
</template>
<script>
export default {
data() {
return {
provinces: [
{
name: '北京市',
path: 'M 272 58 L 272 250 L 470 250 L 470 58 L 272 58 Z',
class: 'province',
description: '北京市,简称“京”,是中华人民共和国的首都、直辖市、国家中心城市、超大城市,也是中国政治、文化、科技、教育和国际交往中心,是全国重要的交通枢纽和综合性国际航空枢纽。'
},
{
name: '上海市',
path: 'M 659 528 L 659 607 L 748 607 L 748 528 L 659 528 Z',
class: 'province',
description: '上海市,简称“沪”,是中华人民共和国直辖市之一,全国重要的经济、金融、贸易、航运、科技创新中心和综合交通枢纽,是国际经济、金融、贸易中心,也是国际航运中心和文化、科技创新中心,被誉为"东方明珠"。'
}
// 其他省份省略
],
selectedProvince: {
name: '',
description: ''
}
}
},
methods: {
onProvinceMouseOver(province) {
province.class = 'province active';
this.selectedProvince.name = province.name;
this.selectedProvince.description = province.description;
},
onProvinceMouseOut(province) {
province.class = 'province';
this.selectedProvince.name = '';
this.selectedProvince.description = '';
}
}
}
</script>
<style>
.province {
fill: #ccc;
stroke: #fff;
}
.province.active {
fill: #f00;
}
.map-container {
width: 1000px;
height: 800px;
}
.detail-container {
position: absolute;
top: 50px;
left: 1100px;
}
</style>
原文地址: https://www.cveoy.top/t/topic/bVQA 著作权归作者所有。请勿转载和采集!