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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP 和 MySQL 基础教程(三)
Oct 09 PHP
PHPMailer安装方法及简单实例
Nov 25 PHP
sphinx增量索引的一个问题
Jun 14 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 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开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
Python中的yield浅析
2014/06/16 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
深入理解Python异常处理的哲学
2019/02/01 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
2016春节慰问信范文
2015/03/25 职场文书
自主招生英文自荐信
2015/03/25 职场文书
青春雷锋观后感
2015/06/10 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript