2012-10-22 108 views
0

我想讓自己熟悉raphael.js。我想創建一個美國地圖,每個州都有默認的顏色,並且這些顏色留在那裏。Raphael.js地圖默認填充顏色

Here is我想出了什麼。

如果你看看AK,我會得到默認的顏色加載,但是如果我突出顯示另一個狀態,AK的默認顏色就會消失。我想要AK和其他國家保持相同的顏色。

具體來說,我不知道什麼是清除我的AK全綵。我覺得這句話的部分清理出的加水蓋,當我將鼠標懸停在不同的狀態:

 for (var state in aus) { 
     //aus[state].color = Raphael.getColor(); 
     (function (st, state) { 
      st[0].style.cursor = "pointer"; 
      st[0].onmouseover = function() { 
       current && aus[current].animate({fill: "#333", stroke: "#666"}, 500) && (document.getElementById(current).style.display = ""); 
       st.animate({fill: st.color, stroke: "#ccc"}, 500); 
       st.toFront(); 
       R.safari(); 
       document.getElementById(state).style.display = "block"; 
       current = state; 
      }; 

     })(aus[state], state); 
    } 

任何想法,我可能會去錯了嗎?

回答

0

Bryan Allo觸及我的部分問題,但最終導致問題的是動畫代碼。我從來沒有想過如何動畫到類似的色調,完全拋棄下面的代碼:st.animate({fill: st.color, stroke: "#ccc"}, 500);

最終結果是一個網站,讓用戶創建自己的總統競選狀態預測。 Here it is.

1

這已經有一段時間,因爲我跟Raphael.js的工作,但我覺得這是重置狀態行:

current && aus[current].animate({fill: "#333", stroke: "#666"}, 500) && (document.getElementById(current).style.display = ""); 

試着用st.color或任何該州的顏色替換#333。如果我的假設是正確的,就像aus ['AK']?您可能必須捕捉前一狀態的顏色。讓我知道如果這不起作用,我可以仔細看看。

祝你好運。

0

放下你美國的SVG成.. this

您可以選擇刪除或保留在其中也產生了鼠標懸停代碼。