2012-03-31 182 views
1

我在畫布上有一堆拉斐爾圓形物體,在許多情況下它們重疊,有時一個較小的圓圈完全被坐在其上的較大圓圈覆蓋。在像這樣的情況下,我想在更小的圓周上將更小的圓圈向前 - 或者更準確地說,當它包含的座標被掩蓋時。Raphael:將模糊的點帶到前面

我一直在嘗試getElementsByPoint()方法作爲mousemove處理程序的一部分,但我發現它的性能非常低下。

任何提示或竅門在拉斐爾畫布上帶上被遮蓋或變​​暗的點嗎?

在此先感謝。

回答

0

您可以創建覆蓋蒙板作爲透明rect,覆蓋整個畫布區域,其中包含每個形狀的路徑座標,並將其作爲處理程序附加到它。

爲此,您需要爲疊加蒙版創建自定義事件以觸發並捕捉形狀,我們稱之爲「shape-coor-over」和「shape-coor-out」。

這個模板將充當調解人:它會聽鼠標移動和必火在一定的條件下shape-coor-overshape-coor-out自定義事件(如鼠標已經進入了一個路徑的面積等),以及登記的形狀通知時,他們的處理程序將相應地調用形狀的toFront()toBack()