- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在拉斐尔,如果你申请.toFront()
或.toBack()
对于一个集合,它做了两件事:
单击演示中的文本按钮,注意圆圈之间的顺序如何反转,以及一组圆圈在半透明矩形的前后移动。
如果 .insertBefore()
or .insertAfter()
are used,也会发生同样的事情(略有不同)将对象移动到前面和后面。
我的问题是:如何发送多个 Raphael 元素 .toFront()
或.toBack()
在一起,维持这些元素之间的堆叠顺序?
我明白为什么会发生这种情况:Raphael 集基本上只是修改后的数组,而 Raphael 只是随意应用 .toFront()
或.toBack()
依次到集合中的每个元素,因此集合中元素内的结果顺序取决于拉斐尔为循环元素数组而选择的顺序。此顺序似乎是元素被推送到数组的顺序 - 而不是元素的堆叠顺序。
我不知道该怎么办。我如何推送拉斐尔对象的选择 .toFront()
或.toBack()
同时保持元素之间的顺序?
不幸的是,IE8 支持是不可协商的,因此理想的答案应该在 Raphael 的 VML 模式和 SVG 模式下工作。请记住 Raphael 不使用 SVG <g>
组(我相信这是因为没有干净的 VML 等效项),所以 the suggestion here won't work .
一个想法应该可行,但我找不到一种干净的实现方法:也许我们可以在应用 .toFront()
之前按元素的堆叠顺序对拉斐尔集数组进行排序。或.toBack()
?然后修改.setToFront()
和.setToBack()
可以定义函数,它可能克隆集合数组,根据堆栈顺序升序或降序对克隆进行排序,具体取决于它是在前面还是在后面,然后应用 .toFront()
或.toBack()
对每个元素?然而,我找不到任何干净的方法来获取对象在堆叠顺序中的位置。
最佳答案
既然您知道 Raphael 将 set
视为数组,您就意识到必须采取一些解决方法。
所以我在您的代码中添加了一个小函数,您可以调用它而不是 toFront()
。
THIS 接缝做你所要求的事情,它非常好而且简单:
function correctOrder()
{
for ( var i = 0; i < set1.length; i++)
{
var temp_circ = set1.pop();
temp_circ.toFront();
set1.splice(0, 0, temp_circ);
}
}
关于javascript - 发送 Raphael set toFront();或 toBack();不改变集合内的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081616/
我想创建一个 StackPane ,无论添加什么,我选择的节点总是在前面(而不是必须注意我添加东西的顺序,或者记住每当添加任何内容时调用该特定节点上的 toFront()。) 为了做到这一点,我只是在
我只是尝试使用 raphael.js 来生成交互式 svg map ,我想要实现的效果有点像这个印度 map 示例,我从 wikimedia 下载,JS fiddle working example
我的问题是这样的。我得到了两个可以一起工作、一起移动的窗口。 但是,如果我然后打开浏览器或其他会出现在屏幕前面的东西,然后我尝试通过在任务栏上单击它来在前面显示我的程序,那么只有一个窗口出现在前面。对
我有以下布局。 我想要实现的是将黄色 subview 设为圆形并将其置于最前面。我尝试了 self.view.bringSubview(toFront:yellowView) 但似乎没有像我预期的那样
我有一个包含 7 个系列的散点图,每个系列大约有 2100 个点。我通过选择它们来突出显示点(因为显然没有办法以编程方式在一个点上添加一对静态十字准线),但问题是,有时它们完全出现在另一个系列后面,因
我有这两个 JFrame,当 setUndecorated 设置为 false 时,它们工作得很好,但当它设置为 true 时,它不能始终如一地工作; frame = new JFrame("
我有一个散点图,我循环遍历每个点,如果符合我的条件,则将其放在前面,如下所示: ptChart.series[0].points.forEach((point) => { if (point.op
在拉斐尔,如果你申请.toFront()或.toBack()对于一个集合,它做了两件事: 预期行为:该集合中的所有元素都位于堆叠顺序的前面或后面。 意外行为:集合内元素的顺序发生变化 JSBin de
本文整理了Java中com.badlogic.gdx.scenes.scene2d.ui.Window.toFront()方法的一些代码示例,展示了Window.toFront()的具体用法。这些代码
我是一名优秀的程序员,十分优秀!