所以我知道你可以用一个函数来计算Cytoscape.js中的css属性,例如。
cytoscape.stylesheet()
.selector('node')
.css({
'width': function(ele) {
return 12;
})
我也知道特殊价值'标签'这可以是财产的价值,例如。
cytoscape.stylesheet()
.selector('node')
.css({
'width': 'label'
})
我想知道的是,我可以使用任何特定属性来缩放标签,例如:我想要的是像
cytoscape.stylesheet()
.selector('node')
.css({
'width': function(ele) {
return labelWidth * 1.5; //Where to get labelWidth from
})
特别希望能够计算椭圆的高度和宽度,以便标签完全包含在椭圆内(可以使用一些数学计算,例如Ellipse bounding a rectangle)。
但我还没有找到获得labelWidth的方法。我确实设法使用rscratch但是只有当节点实际上被渲染两次(例如多个.selectors)时,才能从给定元素获得标签宽度和高度的任何正确方法(或者至少是计算它的方式&#39) ;会被渲染吗?)。
答案 0 :(得分:1)
如果您想进行更复杂的尺寸调整,您的计算必须更加复杂。
选项:
(1)使用div计算文本的尺寸。
(2)使用自动调整大小,然后根据当前大小调整大小。
(1)比(2)更清洁。
Cytoscape.js在样式表中为您公开渲染的计算值是没有意义的。这些值是从样式表计算出来的,创建了一个依赖循环。
答案 1 :(得分:0)
如果您只想要节点内的标签,则可以设置 padding 属性以在文本周围留出更多空间。