100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > div+css+js实现深圳交互地图

div+css+js实现深圳交互地图

时间:2022-02-15 12:39:01

相关推荐

div+css+js实现深圳交互地图

前段时间,因为项目需要找了很多网上资源关于深圳地图的,都不太理想。于是整理了一份适用于项目的交互地图供大家参考,提供思路。里面有个805.svg的文件是引用了里面的path标签的坐标值,应用到chinamapPath.js里面替换,后期可以实现交互数据绑定。如果想换成地区交互地图,可以先让设计师提供.svg格式的矢量图形,然后取里面的坐标值即可。在使用过程中,大家可以集思广益,举一反三进行优化完善。初步模型,不够精致,学习共勉。

html代码参考:

<link rel="stylesheet" type="text/css" href="css/main.css"/>

<script type="text/javascript" src="raphael.js"></script>

<script type="text/javascript" src="chinamapPath.js"></script>

</head>

<body>

<div id="main">

<div class="demo">

<div id="map"></div>

</div>

</div>

<script type="text/javascript">

window.onload = function () {

var R = Raphael("map", 805, 350);

paintMap(R);

var textAttr = {

"fill": "#fff",//文字颜色

"font-size": "12px",

"cursor": "pointer"

};

for (var state in shenzhen) {

shenzhen[state]['path'].color = Raphael.getColor(0.9);

(function (st, state) {

//获取当前图形的中心坐标

var xx = st.getBBox().x + (st.getBBox().width / 2);

var yy = st.getBBox().y + (st.getBBox().height / 2);

//***修改部分地图文字偏移坐标

switch (shenzhen[state]['name']) {

case "龙华":

xx +=0;

yy -= 5;

break;

case "宝安区":

xx -=70;

yy += 20;

break;

case "南山区":

xx += 10;

yy += 10;

break;

case "蛇口":

xx += -10;

yy += 0;

break;

case "福田区":

xx -= 10;

break;

case "罗湖区":

yy -= 10;

break;

case "盐田区":

xx +=2;

yy -=5;

break;

case "龙岗区":

xx += 5;

yy += 10;

break;

case "坪大":

xx +=30;

yy -=30;

break;

default:

}

//写入文字

shenzhen[state]['text'] = R.text(xx, yy, shenzhen[state]['name']).attr(textAttr);

st[0].onmouseover = function () {

st.animate({fill: st.color, stroke: "#eee"}, 500);

shenzhen[state]['text'].toFront();

R.safari();

};

st[0].onmouseout = function () {

st.animate({fill: "#4CC2EA", stroke: "#eee"}, 500);

shenzhen[state]['text'].toFront();

R.safari();

};

})(shenzhen[state]['path'], state);

}

}

</script>

</body>

</html>

chinamapPath.js文件的关键贴码:

shenzhen.longhua = {

name: "龙华",

path: R.path("M294.403,153.232l-13.585,9.622c0,0-3.396,2.52,4.964,12.601l-0.783,3.665l-4.702,6.872l1.566,5.729l-0.261,8.705l7.315,2.292l0.783,7.56c0,0,13.585,8.247,13.848,9.164c0.261,0.915-6.793,10.081-6.793,10.081l-3.135,0.457l-0.785,1.833l-7.576-0.458l-3.919,0.687h-2.351h-5.747h-6.794c0,0-6.27,0.915-7.053,1.146c-0.785,0.229-4.442,2.062-4.442,2.062l0.522-11.226l-1.045-1.145c0,0-0.783-4.123-0.783-5.27c0-1.146,0-2.29-0.785-2.29c-0.783,0-5.747,0-5.747,0s-8.622-5.957-6.792-13.289c1.829-7.331-13.063-8.706-14.892-8.934c-1.828-0.229-0.26-7.562-3.396-7.562s-12.019-1.374-12.802-1.374c-0.783,0-6.53,2.29-6.792-2.749c-0.263-5.04-2.875-6.643-2.875-6.643s6.271-4.813,6.792-7.332c0.523-2.521-0.783-9.164-4.441-9.622c-3.657-0.459,4.703-15.809,4.964-16.496c0.261-0.687,6.793-8.706,6.793-8.706l-3.918-6.414c0,0-1.307-5.956-0.262-6.645c1.044-0.687,8.098-5.727,8.098-5.727s9.667,4.353,10.451,5.956c0.783,1.604,5.486,0.688,5.486,0.688l3.135,3.894l6.794-0.458l1.305-0.688l0.786,2.52l0.783,2.291l2.612,1.375l-0.522,5.041l-0.783,1.833l-0.523,5.499c0,0,9.667,7.33,10.451,7.33s5.486,3.895,5.486,3.895s16.458-4.582,18.288-5.269C283.169,147.046,292.574,149.108,294.403,153.232z").attr(attr)

};

.....完整案例的相关css文件和JS文件较多,可以移至资源下载目录进行下载。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。