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 相关文章推荐
PHP中,文件上传
Dec 06 PHP
自动生成文章摘要的代码[PHP 版本]
Mar 20 PHP
php cc攻击代码与防范方法
Oct 18 PHP
基于empty函数的输出详解
Jun 17 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
Laravel 的数据库迁移的方法
Jul 31 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 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
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
简单使用Python自动生成文章
2014/12/25 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
iostream与iostream.h的区别
2015/01/16 面试题
应届毕业生通用的自荐书范文
2014/02/07 职场文书
新教师岗前培训方案
2014/06/05 职场文书
空气环保标语
2014/06/12 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers
nginx配置指令之server_name的具体使用
2022/08/14 Servers