2009-09-18 56 views
5

我正在構建一個頁面,該頁面將動畫對象(圖像/形狀/ div)並將它們浮動在屏幕周圍。有時可能會有大量的對象浮動和交互。動畫:jQuery還是Raphael?

的要求是有一個與每個對象相關聯的數據,因爲他們將每個都具有一個ID。所以,如果我點擊一個對象,它可以獲取該ID,然後引用一個包含該對象數據的數組。

我辯論,如果我應該使用jQuery的$ .animate功能或使用拉斐爾。我知道SVG會很好用,但我不確定我是否可以給每個對象和id,然後調出一個包含關聯數據的div onclick。點擊SVG元素可以引用DOM元素嗎?動態文本與SVG有什麼關係?我也擔心動畫需要多少處理能力。在這方面有更好的選擇嗎?

BTW,我不是在談論jQuery的SVG這裏,只是正常的jQuery和DOM。

如果任何人有任何深入瞭解這一點,或建議他們將不勝感激!

+0

就像一個快速的注意 - 這是可能的HTML5和帆布(點擊任意點):http://9elements.com/io/ projects/html5/canvas/ – Mottie 2009-09-19 09:24:43

+0

另外,畫布往往會更快,因爲它基本上是OS繪圖API的一個薄層。但是,畫布並不像SVG那樣完全暴露於DOM。 – user120242 2009-09-20 01:52:06

+0

@ fudgey - 是的,我已經看過演示。我真的不認爲點擊時發表的評論實際上與您點擊的點有關。他們只是隨機選擇,而不是分配給一個點。很確定這是事實。 – 2009-09-20 17:53:45

回答

0

是。所有圖形對象都添加爲DOM對象。

一個演示:http://raphaeljs.com/github/impact.html繪製一個圓,分配一個ID,並附加一個onclick事件

簡單的演示代碼:

var paper = Raphael(10, 50, 320, 200); 
// Creates circle at x = 50, y = 40, with radius 10 
var circle = paper.circle(50, 40, 10); 
// Sets the fill attribute of the circle to red (#f00) 
circle.attr("fill", "#f00"); 
// Sets the stroke attribute of the circle to white (#fff) 
circle.attr("stroke", "#fff"); 
//assign circle id="lolcats" 
circle.node.id="lolcats"; 
//onclick alert id 
circle.node.onclick=function(){alert(this.id)}; 

如果你需要做的花式矢量繪圖和操作,拉斐爾會好。如果沒有,你可能只是使用你所知道的。另外,你可以同時使用jQuery和Raphael。
從它的聲音來看,jQuery應該足夠滿足您的需求。

+0

是的,我並不需要做矢量繪圖。現在我主要關心速度以及屏幕上可以放置多少個物體。而且,基於那將是我最好的解決方案。 現在,我會堅持使用jQuery,看看是否遇到任何限制。 謝謝。 – 2009-09-20 17:56:13