2

我希望有人能告诉我如何在 Raphael JS 中将一整套元素带到 Front。

我正在使用一些动态生成的 raphael 元素集,每个元素都存储在一个数组中,从而更容易与单个集合进行交互和定位。当用户与各种集合交互时,我希望能够将完整集合带到应用程序的前面。

我曾尝试使用此处概述的 .toFront():http ://raphaeljs.com/reference.html#Element.toFront

然而,这并没有正常工作。每个集合包含一个圆圈或一个圆圈扇区、一个文本元素和一个附加圆圈或附加扇区。

有任何想法吗?在任何时候,用户可能拥有多达 40/50 的这些集合,因此无论如何将集合放在前面将是必要的。

4

1 回答 1

2

我对 toFront() 函数也有类似的问题......好吧,我想说有两种方法可以做到......第一个(不太推荐)对集合的所有元素应用循环以带来它们排在前面,但仍然会根据集合中的顺序对其进行排序 .... 不好的方法 ... set.forEach(el){ e.toFront();}

第二个真的很性感 :) 我的最爱 :) phrogz 先生在这里完美地解释了

我推荐使用'g'标签...简单的javascript。让你所有的集合都包含在 ag 标签中

var mySet = document.createElementNS("http://www.w3.org/2000/svg", "g");
mySet.setAttribute('id','myset');
//should look something like this
//use jQuery append or javaScript appendChild to add your set elements to this group
<g id = 'myset'>
      <rect>
      <circle>
      //etc etc
    </g>

现在

       mySet.parentNode.appendChild(mySet); //the key line

这只会将它带到 svg 容器的底部,因此最后绘制并根据链接中的 phrogz 先生也提到的画家模型显示在顶部....您可以使用 javascript 来操作自己的 z-index如果需要...

于 2012-08-18T00:18:59.867 回答