2016-03-25 9 views
1

Cytoscape.jsのCSSプロパティを計算する関数を使用することができます。サイトサイプレーブでのラベルに相対するサイジングノード

cytoscape.stylesheet() 
    .selector('node') 
    .css({ 
     'width': function(ele) { 
     return 12; 
    }) 

また、プロパティの値である特別な値 'label'も認識しています。

cytoscape.stylesheet() 
    .selector('node') 
    .css({ 
     'width': 'label' 
    }) 

私が思っているのは、何らかの要因でラベルを拡大縮小するために使用できる特定のプロパティです。私が欲しいのは、いくつかの数学例えばEllipse bounding a rectangleを使用して計算することができます

cytoscape.stylesheet() 
    .selector('node') 
    .css({ 
     'width': function(ele) { 
     return labelWidth * 1.5; //Where to get labelWidth from 
    }) 

ような何か特別に私は(能力はラベルが完全に楕円内に含まれるように楕円の高さと幅を計算することができるようにしたいです)。

しかし、私はlabelWidthを取得する方法を見つけることができませんでした。私はrscratchを使用してそれを行うことができましたが、ノードが実際に2回レンダリングされた場合(複数の.selectorsなど)、指定された要素からラベルの幅と高さを取得する適切な方法(または少なくとも方法の計算方法レンダリングされる?)。

答えて

1

さらに洗練されたサイジングを行いたい場合は、計算をより洗練させる必要があります。

オプション:

(1)自分ではdiv要素を使ってテキストの大きさを計算します。

(2)自動サイジングを使用して、現在のサイズに基づいてサイズを調整します。

(1)は(2)よりもクリーナーです。

Cytoscape.jsがレンダリングされた計算値をスタイルシートに公開するのは意味がありません。これらの値はスタイルシートから計算され、依存関係のサイクルが作成されます。