2014-02-27 116 views
0

1)我正在使用JointJS圖表庫。我想在使用joint.shapes.devs時更改特定inPort的css。stylej特定端口

對於鏈接源端口到目標我使用

source: { id: source.id, selector: source.getPortSelector(sourcePort)}

它給我準確的源端口,但如何知道它作爲我的源連接器後,這個特定的端口上應用CSS?有沒有辦法?

2)如果元素寬度大於元素寬度,我們可以在元素內自動貼裝/包裝標籤嗎?我正在使用joint.shapes.devs.Atomic元素。

我碰到過foreignobject但不知道如何使用它? 任何人都可以拋出一些光?

回答

2

1)

myShape.attr('[port="a"]/fill', 'blue') 

其中斜線之前的第一個參數的第一部分是一個CSS選擇指向端口圓SVG元件,所述第二部分將被該元件和上設置一個SVG屬性第二個參數是要爲該屬性設置的值。做同樣的事情,一個可選的語法是:

myShape.attr({ '[port="a"]': { fill: 'blue' } }) 

詳見attr()方法參考:http://jointjs.com/api#joint.dia.Element:attr

2)joint.shapes.devs.Atomic形狀不會自動做到這一點。您必須創建自己的形狀,並通過foreighObject或通過JavaScript編程實現。作爲使用foreignObject的參考,請參閱此文件中定義的joint.shapes.basic.TextBlock形狀:https://github.com/DavidDurman/joint/blob/master/plugins/joint.shapes.basic.js

+0

1)完美的回答! 2)我沒有得到如何在'joint.shapes.devs'中包裝文本?甚至沒有找到使用'foreignObject'來包裝文本的例子。你能幫我解決這個問題嗎? – softvar