簡體   English   中英

如何將Raphael.js集移動到特定位置?

[英]How can I move Raphael.js sets to specific locations?

如果要使用raphael.js 單個元素設置為特定位置的動畫,則可以使用以下代碼來設置elements x屬性:

elem.animate({x: specific_X_Location}, 1000);

但我找不到將set移到特定位置的方法。

有兩篇SO文章: 訪問raphael js中的集合中的集合 ,以及
如何在Raphael中完成動畫設置?
討論如何轉換給定距離的集合(即,將集合右移100或向上移動100),該距離使用轉換或平移,例如

var mySet = paper.set();
mySet.push(...add elements to set);
mySet.animate({transform: "t100,0"}, 1000); // move my set right by 100

但是似乎沒有辦法將整套設備移到特定位置。

看一下螢火蟲中的東西,我想一個集合最終只是一個數組,這就是為什么它沒有xy屬性的原因。

是否可以訪問有關集合元素的任何信息而無需單獨尋址?

為了將集合轉換到特定位置,您是否認為我必須對特定元素進行轉換,然后將該移動應用於整個集合? 還是我錯過了更好的方法?

非常感謝

沒錯,集合只是一個數組。 可悲的是,沒有一套簡單的方法可以移動整套設備-至少是從我收集的數據來看。 我在一個項目中一直在面對同樣的問題,整個晚上。 似乎該集合對於將屬性等應用於一大組對象最有用。 假設您要在屏幕上顯示一百個紅色圓圈是您的家伙。 但是,如果您嘗試將變換應用於集合,則它將與應用屬性的方式相同-將屬性全局應用於集合。 這意味着您所有的圓都將具有相同的坐標和比例等,而不僅僅是一個。 我一直在使用的一種解決方法是使用exclude和getById-像這樣:

 yourSet.exclude(paper.getById('2'));

一旦從集合中排除了對象,就可以將變換應用於單個對象,如下所示。

 paper.getById('2').transform('t230,265s3');

然后,只需為每個要移動的對象重復。

正如您可以想象的那樣,這對於大型集合來說非常繁瑣,您也可以僅使用奇異的var語法(除非您將屬性應用於一組對象)。

我想知道是否有一種方法可以使用數組語法和數學為您完成此操作,但是您必須弄清楚對象之間的所有關系。

也許我們會看看較新版本的Raphael是否包含某種簡單的set-transform。 那真是天才。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM