2013-10-11 53 views
0

一個新手問題。正如我在之前的文章中解釋的那樣,我從Flash中加入了ActionScript的期望和誤解來到SVG Land。設置組的位置

我已經使用D3構建了一個交互式圖形,而且我幾乎完成了,除了我想添加一個彈出式小框,當用戶將鼠標懸停在某個狀態上時顯示。現在看來標記爲「西弗吉尼亞」在舞臺左側的靜態對象:

http://www.50laboratories.com/miscellany/demographicclout2.html

彈出是一個有自己獨特的ID一組。我需要能夠設置它的x和y位置取決於狀態懸停,但到目前爲止不能弄清楚如何。在我看來,我應該能夠在JavaScript中處理一個組,就像我在Flash中的一個已命名的影片剪輯一樣,但訪問這樣的API參考,https://github.com/mbostock/d3/wiki/API-Reference,我沒有看到對組對象的方法和屬性的引用。在此先感謝您的幫助。

+0

所以,如果我正確地理解你,你想要一些工具提示。那麼在[this](https://groups.google.com/forum/#!msg/d3-js/-1oLMKUez3M/g3UjfyvKQIsJ)谷歌小組討論中已經有相當多的關於這個話題的討論(它有很多其中的例子的鏈接)。 – user1614080

+0

看起來很有希望。有趣的是,我從來沒有把它們當作工具提示,但是,是的,這基本上就是它們。我將在接下來的幾天內調查這些鏈接。謝謝。 –

回答

0

與actionscript不同,svg元素是dom節點,操縱它們涉及設置它們的屬性或樣式屬性。您可以通過調用dom節點的某些屬性/樣式設置器來操作這些屬性,但由於您使用的是d3,因此您可以使用d3的setter設置這些屬性/樣式。

來定位元件與D3是 1選擇它,由用戶分配它 2.設置其transform屬性translate([some-x], [some-y])

d3.select("#statepopup").attr("transform", "translate(50,100)"); 

P.S.該ID的方式 transform屬性也是您如何縮放和旋轉組的方式。

+0

謝謝。我以前有過transform屬性的經驗。在部分D3-ified SVG之前,我嘗試通過transform屬性在條形圖中設置條的高度和位置。即使在發佈這個問題後,我完全無法獲得正確的同步縮放和定位。所以在我瞭解到使用D3之後,我放棄了直接SVG方法,我可以像設置ActionScript那樣設置高度,x和y attibutes。因爲在這種情況下,我只是定位而不是縮放,我不應該有任何麻煩。 –