2012-03-31 73 views
1

我在画布上有一堆拉斐尔圆形物体,在许多情况下它们重叠,有时一个较小的圆圈完全被坐在其上的较大圆圈覆盖。在像这样的情况下,我想在更小的圆周上将更小的圆圈向前 - 或者更准确地说,当它包含的坐标被掩盖时。Raphael:将模糊的点带到前面

我一直在尝试getElementsByPoint()方法作为mousemove处理程序的一部分,但我发现它的性能非常低下。

任何提示或窍门在拉斐尔画布上带上被遮盖或变​​暗的点吗?

在此先感谢。

回答

0

您可以创建覆盖蒙板作为透明rect,覆盖整个画布区域,其中包含每个形状的路径坐标,并将其作为处理程序附加到它。

为此,您需要为叠加蒙版创建自定义事件以触发并捕捉形状,我们称之为“shape-coor-over”和“shape-coor-out”。

这个模板将充当调解人:它会听鼠标移动和必火在一定的条件下shape-coor-overshape-coor-out自定义事件(如鼠标已经进入了一个路径的面积等),以及登记的形状通知时,他们的处理程序将相应地调用形状的toFront()toBack()