php和jquery实现地图区域数据统计展示数据示例


Posted in PHP onFebruary 12, 2014

php和jquery实现地图区域数据统计展示数据示例

HTML

首先在head部分载入raphael.js库文件和chinamapPath.js路径信息文件,本文不重复写下,唯一不同的地方是需要在body中加一个div#tip,用来展示地图信息的提示框。

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

jQuery

通过调用raphael绘制出中国地图,然后载入统计数据,由于地图区块小,我们不在地图载入的时候就将数据显示在地图区块上了,我们通过鼠标交互实现将数据信息更好的展示给用户。当鼠标滑向省份区块时,通过e.pageX和e.pageY定位鼠标坐标,然后通过jquery的css()方法定位提示框div#tip,并且将对应省份的的名称和活跃用户数加到提示框里并展现出来,请看代码:

$(function(){ 
    $.get("json.php",function(json){     ......//这里省略代码若干 
    var i=0; 
    for (var state in china) { 
        china[state]['path'].color = Raphael.getColor(0.9); 
        (function (st, state) { 
            var prodata = data[i]; 
            var fillcolor = colors[arr[i]]; 
            st.attr({fill:fillcolor});//填充背景色 
            xOffset = 70; 
            yOffset = 180; 
            st.hover(function(e){//鼠标滑向 
                st.animate({fill: "#fdd", stroke: "#eee"}, 500); 
                R.safari();                 
                $("#tip").css({"top":(e.pageY-xOffset)+"px","left":(e.pageX-yOffset)+"px"}).fadeIn("fast") 
                .html("<h4>"+china[state]['name']+"</h4><p>活跃用户数:"+prodata+"</p>"); 
            },function(){//鼠标离开 
                st.animate({fill: fillcolor, stroke: "#eee"}, 500); 
                R.safari(); 
                $("#tip").hide(); 
            }); 
            st.mousemove(function(e){//鼠标移动 
                $("#tip").css({"top":(e.pageY-xOffset)+"px","left":(e.pageX-yOffset)+"px"}); 
                R.safari(); 
            }); 
         })(china[state]['path'], state); 
         i++; 
    } 
    }); 
});

以上代码可以看出,通过jQuery的hover()鼠标滑向省份区块时,调用弹出提示框,并将数据载入显示在提示框中,而值得关注的是,我们还需要加一个效果,就是鼠标在省份区块上移动mousemove()的时候,也应该调用提示框跟随鼠标一起移动,否则的话当鼠标在一个省份区块内滑动的话提示框位置不会变化,这样会影响体验效果,小小的改动可以提升用户体验。
最后,如果您需要定制提示框的效果的话,可以设置提示框的CSS样式,本例简单的CSS代码如下:

#tip{position:absolute; width:180px; border:1px solid #d3d3d3; background:#fff;display:none; 
-moz-border-radius:5px; -webkit-border-radius:5px; overflow:hidden; border-radius:5px; 
-moz-box-shadow:1px 1px 2px rgba(0,0,0,.2); -webkit-box-shadow:1px 1px 2px rgba(0,0,0,.2);  
box-shadow:1px 1px 2px rgba(0,0,0,.2);} 
#tip h4{height:28px; line-height:28px; padding-left:6px; background:#f0f0f0} 
#tip p{line-height:24px; padding:2px 4px}
PHP 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
附件名前加网站名
Mar 23 PHP
PHP取进制余数函数代码
Jan 19 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 #PHP
php 不使用js实现页面跳转
Feb 11 #PHP
简单的php中文转拼音的实现代码
Feb 11 #PHP
PHP字符串的递增和递减示例介绍
Feb 11 #PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 #PHP
php发送post请求的三种方法
Feb 11 #PHP
codeigniter教程之多文件上传使用示例
Feb 11 #PHP
You might like
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
一个javascript参数的小问题
2008/03/02 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
python聊天程序实例代码分享
2013/11/18 Python
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
STP的判定过程
2012/10/01 面试题
小组合作学习反思
2014/02/18 职场文书
诚信考试倡议书
2014/04/15 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
电子工程求职信
2014/07/17 职场文书
学生打架检讨书
2014/10/20 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers