2013-12-17 51 views
1

有沒有辦法在屏幕點(x,y)獲取RaphaelJS元素的填充顏色?在自定義座標處獲取顏色填充RaphaelJS元素

在此先感謝!

+1

事件驅動就像'element.click(function(){this.attr('fill')); });'但是你必須爲每個元素設置事件處理函數。這很可能不是你想要的。 –

回答

2

您不必爲每個元素附加點擊處理程序,只需將一個點擊處理程序附加到SVG元素本身,然後使用RaphaelJS的幫助函數查找光標下的第一個元素。你會做這樣的事情:

jQuery(paper.canvas).click(function(e) 
{ 
    var parentOffset = jQuery(this).offset(); 
    var relX = e.pageX - parentOffset.left; 
    var relY = e.pageY - parentOffset.top; 

    console.log("Relative position: %s, %s", relX, relY); 
    var el = paper.getElementByPoint(e.pageX, e.pageY); 
    if (el) 
    { 
     console.log(el); 
    } 
    else 
    { 
     console.log("No hit."); 
    } 
}); 

要看到這樣的例子在行動,請訪問:this page on my dev server,並保持眼睛上的控制檯輸出。

一個警告:我似乎記得你需要將屏幕座標轉換爲Raphael座標,使用特定的技術,具體取決於滾動偏移量 - 如果窗口滾動,我認爲我的代碼不能正確處理Y座標垂直。

快樂編碼。