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 分页类(模仿google)-面试题目解答
Sep 13 PHP
smarty模板引擎之配置文件数据和保留数据
Mar 30 PHP
php验证手机号码
Nov 11 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
tp5.1 框架查询表达式用法详解
May 25 PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 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
珊瑚虫IP库浅析
2007/02/15 PHP
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
让焦点自动跳转
2006/07/01 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
Python os模块学习笔记
2015/06/21 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
小学三年级学生评语
2014/04/22 职场文书
公司节能减排方案
2014/05/16 职场文书
运动会运动员赞词
2015/07/22 职场文书
《我是什么》教学反思
2016/02/16 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
解决Golang中goroutine执行速度的问题
2021/05/02 Golang