raphael 不支持group,里面有的set方法,只是把对象数组存起来,方法调用的时候,遍历都调用下,但是在实际需求上面感觉group还是瞒有用处的,可以控制group下面的节点的交互

比如地图区域下面的中心点和对应的文字,在悬停的时候区域变色,就只要在group结点下面定义事件就可以了,就不用区域,文字,中心点都定义事件了

本文的方法只是简单的修改了下源码,并没有完全的测试,需要实际使用的话,还有坑,主要方便借鉴

  1.在paper对象上面扩展group方法,返回的element对象上面增加"circle,ellipse,image,path,print,rect,text"方法

    

paperproto.group = function () {
var out = R._engine.group(this);
this.__set__ && this.__set__.push(out);
out.canvas = out.node;//节点添加方法,都是在canvas属性的结点上添加,所以增加属性,指向自己的结点
var t = "circle,ellipse,image,path,print,rect,text".split(",");//"circle,ellipse,image,path,print,rect,text"方法扩展
for (var i = 0, len = t.length; i < len ; i++) {
out[t[i]] = (function (key) {
return function () {
return paperproto[key].apply(this, arguments);
}
})(t[i]);
}
return out;
};

  2._engine增加group方法,svg和vml分别是

  

R._engine.group = function (svg) {
var el = $("g");
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.type = "g";
return res;
};
R._engine.group = function (vml) {
var el = createNode("group");
var res = new Element(el, vml);
vml.canvas && vml.canvas.appendChild(el);
return res;
};

  3. 其实简单的修改,差不多了,在调用animate方法提示paper对象不存在

  TypeError: element.paper.customAttributes is undefined
  简单处理下,在Element方法中将paper属性指向为最外层的paper对象
  

var t = svg;
while(t.paper) {
t = t.paper;
}
this.paper = t;
//vml下自行修改下
  实际项目中group的应用,在控件组合中间感觉比较有用些,实际情况还是应该实际处理,因为group内的元素,显示顺序就固定下来了,不可能在中间插入显示其他group的元素,显示交互上面有些限制,在实际场景下还是要考虑是否是用group
 
  SVG 调整页面的 z-index 只能是通过调整页面结点的插入顺序,搜索下来也有折中的做法,就是一些svg做在不同的div中,修改div的z-index

  

raphael 支持group(简)的更多相关文章

  1. c# datatable.select() 支持group by

    不支持group by ,支持order by.如果要使用group by的话,可以使用linq,这是C#3.0的内容.给你个示例static void Main(string[] args){ Da ...

  2. HIVE 不支持group by 别名

    hive不支持group by 别名,如果需要group by 别名的情况,可以使用 别名的 值作为group by 的值

  3. 坑人的Mysql5.7 (默认不支持Group By语句)(转)

    部署项目时,项目启动完毕.点击有group by 查询语句时出现错误,界面中没有该有的数据.查询log日志发现错误 Expression #1 of SELECT list is not in GRO ...

  4. mysql5.7不支持group by的解决办法

    1.查看sql_mode select @@global.sql_mode 查询出来的值为: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DAT ...

  5. mysql 不支持group by的解决方案

    进入mysql命令行 执行如下两句语句 set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_ ...

  6. SQL中Group By的使用

    1.概述 2.原始表 3.简单Group By 4.Group By 和 Order By 5.Group By中Select指定的字段限制 6.Group By All 7.Group By与聚合函 ...

  7. 学习RaphaelJS矢量图形包--Learning Raphael JS Vector Graphics中文翻译(一)

    (原文地址:http://www.cnblogs.com/idealer3d/p/LearningRaphaelJSVectorGraphics.html) 前面3篇博文里面,我们讲解了一本叫做< ...

  8. SQL中Group By 的使用

    1.概述 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理. 2.原始表 3.简 ...

  9. group by的使用

    1.概述 2.原始表 3.简单Group By 4.Group By 和 Order By 5.Group By中Select指定的字段限制 6.Group By All 7.Group By与聚合函 ...

随机推荐

  1. JS 利用CNZZ进行站长统计

    利用CNZZ对网站进行站长统计 前端页面只需要在body中添加如下代码即可: <script type="text/javascript">var cnzz_proto ...

  2. uva 10655 - Contemplation! Algebra

    ---恢复内容开始--- Given the value of a+b and ab you will have to find the value of an+bn 给出a+b和a*b的值,再给出n ...

  3. 连接mysql数据库2+操作入门

    package 对数据库操作Statment; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...

  4. Oracle利用过程procedure块实现银行转账

    -- create table account( id ) not null, name ), ,2), constraint a_pk primary key(id) ); --历史表 select ...

  5. JSP 最佳实践: 用 jsp:include 控制动态内容

    在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include  ...

  6. mysql学习(十)多表查询

    多表查询时,要给表名起别名,给字段名其别名(当两个表含有重复字段时) select p.name, c.name, pid from products p, cats c;//得到的结果为笛卡尔乘积 ...

  7. 使用 Chrome 来调试你的 Android App

    http://www.stormzhang.com/android/2015/03/05/android-debug-use-chrome/ 个人一直对Chrome情有独钟,Chrome除了更快之外, ...

  8. 修改vim默认tab为4个空格与显示行号

    添加一个.vimrc配置文件即可. 在home目录下 vim .vimrc # 添加如下内容 set ts=4 set expandtab set nu 然后再次用vim打开任意文件,就看见效果啦!

  9. C语言的本质(11)——指针与数组

    1.指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别.其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是"储存指针的数组 ...

  10. Day1_算法分析方法

    课堂笔记: 程序执行效率影响因子: 输入:评估时使用最坏情况输入 输入大小:考虑n渐进∞ 机器执行效率: 忽略 两种排序算法比较 插入排序n2 归并排序nlgn 递归 技能1:评估多项式的时间级数θ ...