Skip to content

@jtopo/core / TipNode

Class: TipNode

提示、角标节点, 通常用于告警、提示。 节点的原点(0,0)默认是最下方居中位置

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new TipNode(text?, x?, y?, w?, h?)

Parameters

NameTypeDefault value
text?stringundefined
xnumber0
ynumber0
wnumber1
hnumber1

Overrides

TextNode.constructor

Properties

afterRender

Optional afterRender: Function

渲染后回调

Inherited from

TextNode.afterRender


arrowsSize

arrowsSize: number


attributes

Readonly attributes: Object

Since

2.6.0 存放自定义属性(用于定义节点类型,和业务数据无关)

Index signature

▪ [key: string]: any

Inherited from

TextNode.attributes


autoDirection

autoDirection: boolean = true

自动调整方向,防止文字头向下

Inherited from

TextNode.autoDirection


beforeRender

Optional beforeRender: Function

渲染前回调

js
obj.beforeRender = function(){
   if(this.x < 0){
       this.x = 0;
   }
   //...
}

Inherited from

TextNode.beforeRender


children

Readonly children: NE[]

子节点(直接下级)

Inherited from

TextNode.children


classList

Readonly classList: string[]

通过addClass添加的样式名称列表

Inherited from

TextNode.classList


className

Readonly className: any

Overrides

TextNode.className


data

Optional data: any

通常存放业务含义的数据

为了安全考虑,防止与对象属性冲突,用户最好使用该对象 用户附加到该对象的自定义属性

Since

2.4.0

Inherited from

TextNode.data


deep

deep: number

层级深度, Layer为0,下面第一层子节点为1,依次类推

只读

Inherited from

TextNode.deep


destroyed

Readonly destroyed: boolean

是否已经被销毁

Inherited from

TextNode.destroyed


draggable

draggable: boolean

是否可拖拽

Inherited from

TextNode.draggable


dropAllowed

dropAllowed: boolean

是否可以作为拖拽目标

Since

2.4.0

Inherited from

TextNode.dropAllowed


id

Optional id: string | number

id, 标识,由开发人员控制和设计

Inherited from

TextNode.id


Readonly inLinks: Link[]

所有以本对象为结束点的Link对象数组

Inherited from

TextNode.inLinks


isLayer

Optional Readonly isLayer: boolean

是否是Layer对象, 可以使用 instanceof 替代

Inherited from

TextNode.isLayer


Optional Readonly isLink: boolean

是否是Link对象, 可以使用 instanceof 替代

Inherited from

TextNode.isLink


isNode

isNode: boolean

是否是Node类的对象, 主要用于和Link区分

Inherited from

TextNode.isNode


isSelected

Readonly isSelected: boolean

是否被选中了

Inherited from

TextNode.isSelected


name

Optional name: string

名称,可以在编辑时指定,运行时通过名称获取对象的引用

Inherited from

TextNode.name


originPosition

originPosition: RectPositionType = 'cb'

原点位置

Overrides

TextNode.originPosition


Readonly outLinks: Link[]

所有以本对象为开始点的Link对象数组

Inherited from

TextNode.outLinks


ownerLayer

Optional ownerLayer: Layer

所属的Layer

Since

2.6.0

Inherited from

TextNode.ownerLayer


parent

Optional parent: NE

上级对象

Inherited from

TextNode.parent


pointerEnabled

pointerEnabled: boolean

是否响应(鼠标、触摸屏指针),为false的时候,不响应动作

Since

2.6.0

Inherited from

TextNode.pointerEnabled


rotateWithParent

rotateWithParent: boolean

是否跟随父节点旋转

Inherited from

TextNode.rotateWithParent


selectedStyle

Optional selectedStyle: NodeSelectedStyleOptionsType | LinkSelectedStyleOptionsType

选中时的样式,如果不设置将使用默认的

Inherited from

TextNode.selectedStyle


serializeable

serializeable: boolean

是否可序列化,默认true 如果为false,序列化时将跳过该对象

Inherited from

TextNode.serializeable


showSelected

showSelected: boolean

是否显示选中的效果,默认显示

Inherited from

TextNode.showSelected


style

Readonly style: Style

样式

Inherited from

TextNode.style


title

Optional title: string

鼠标指向时显示的提示信息,和HTML中dom元素的title属性作用相同

Inherited from

TextNode.title


type

Optional type: string

类型,自定义类型

可用于自定义节点,区分节点类型

比用data属性更方便一点

Inherited from

TextNode.type

Accessors

autoSize

get autoSize(): boolean

尺寸是否自动适应文本

Returns

boolean

Inherited from

TextNode.autoSize

set autoSize(v): void

Parameters

NameType
vboolean

Returns

void

Inherited from

TextNode.autoSize


bottom

get bottom(): number

Since

2.4.0

Returns

number

Inherited from

TextNode.bottom

set bottom(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.bottom


height

get height(): number

Returns

number

Inherited from

TextNode.height

set height(v): void

设置高度

注意:高度不能为0

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.height


left

get left(): number

Since

2.4.0

Returns

number

Inherited from

TextNode.left

set left(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.left


get right(): number

Since

2.4.0

Returns

number

Inherited from

TextNode.right

set right(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.right


rotation

get rotation(): number

旋转角度 (弧度)

Returns

number

Inherited from

TextNode.rotation

set rotation(v): void

设置旋转角度 (弧度)

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.rotation


scaleX

get scaleX(): number

Returns

number

Inherited from

TextNode.scaleX

set scaleX(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.scaleX


scaleY

get scaleY(): number

Returns

number

Inherited from

TextNode.scaleY

set scaleY(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.scaleY


skewX

get skewX(): number

Returns

number

Inherited from

TextNode.skewX

set skewX(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.skewX


skewY

get skewY(): number

Returns

number

Inherited from

TextNode.skewY

set skewY(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.skewY


text

get text(): string

Returns

string

Inherited from

TextNode.text

set text(v): void

Parameters

NameType
vstring

Returns

void

Inherited from

TextNode.text


top

get top(): number

Since

2.4.0

Returns

number

Inherited from

TextNode.top

set top(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.top


visible

get visible(): boolean

Returns

boolean

Inherited from

TextNode.visible

set visible(v): void

Parameters

NameType
vboolean

Returns

void

Inherited from

TextNode.visible


width

get width(): number

Returns

number

Inherited from

TextNode.width

set width(v): void

设置宽度

注意:宽度不能为0

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.width


x

get x(): number

Returns

number

Inherited from

TextNode.x

set x(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.x


y

get y(): number

Returns

number

Inherited from

TextNode.y

set y(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.y


z

get z(): number

Returns

number

Inherited from

TextNode.z

set z(v): void

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.z


zIndex

get zIndex(): number

Returns

number

Inherited from

TextNode.zIndex

set zIndex(v): void

设置zInde 相同父节点下的兄弟节点之间才有意义

Parameters

NameType
vnumber

Returns

void

Inherited from

TextNode.zIndex

Methods

addChild

addChild(child): TipNode

增加子对象

  • 父对象和zIndex均相同的情况下,后来add的会显示在上面
  • 默认情况下所有对象的 zIndex是 1

Parameters

NameType
childNE

Returns

TipNode

Inherited from

TextNode.addChild


addChildren

addChildren(childs): TipNode

一次性增加多个对象, 比单个增加速度快很多,数量越多越明显!

注意:避免互为子节点、重复添加。

Parameters

NameType
childsNE[]

Returns

TipNode

Inherited from

TextNode.addChildren


addClass

addClass(styleName): TipNode

增加一个样式

js
obj.addClass('.focus');

Parameters

NameType
styleNamestring

Returns

TipNode

Inherited from

TextNode.addClass


addEventListener

addEventListener(type, callback): void

Parameters

NameType
typestring
callbackFunction

Returns

void

Inherited from

TextNode.addEventListener


changeParent

changeParent(newParent): TipNode

修改父对象但保持世界坐标不变

Parameters

NameType
newParentNE

Returns

TipNode

Inherited from

TextNode.changeParent


clearStyles

clearStyles(): TipNode

清除通过css或setStyles定义的所有样式

Returns

TipNode

Inherited from

TextNode.clearStyles


contains

contains(targe): boolean

方法返回一个布尔值,表示一个对象是否是给定节点的后代,即该节点本身、其直接子节点(children)、子节点的直接子节点等。 备注: 节点包含在自身内部。

Parameters

NameType
targeNE

Returns

boolean

Inherited from

TextNode.contains


destroy

destroy(): void

销毁,释放相关的资源引用,一旦销毁,对象不能再被访问,访问就会报错。

注意:销毁后,所有事件回调、动画、定时器等均不能再访问,否则会报错。

Returns

void

Inherited from

TextNode.destroy


dispatchEvent

dispatchEvent(event): void

分发事件

Parameters

NameType
eventEvent | EventBase

Returns

void

Inherited from

TextNode.dispatchEvent


draw

draw(ctx): void

Parameters

NameType
ctxCanvasRenderingContext2D

Returns

void

Inherited from

TextNode.draw


getAABB

getAABB(recursive?): Rectangle

获取对象在Layer中的aabb包围盒 (包围盒是世界坐标系)

Parameters

NameTypeDescription
recursive?boolean是否将子节点包含在内

Returns

Rectangle

Inherited from

TextNode.getAABB


getAnchor

getAnchor(name): AnchorProxy

根据名称获取并生成一个 ‘锚点‘

Parameters

NameType
namestring

Returns

AnchorProxy

Inherited from

TextNode.getAnchor


getAttribute

getAttribute(name, defaultValue?): any

读取某个属性值

js
// 例如:
let v1 = obj.getAttribute('foo');       //如果foo属性不存在,则返回undefined
let v2 = obj.getAttribute('bar', 123);  //如果bar属性不存在,则返回123

Parameters

NameTypeDescription
namestring
defaultValue?any如果属性值为空时的默认替代

Returns

any

Inherited from

TextNode.getAttribute


getChildren

getChildren(): NE[]

获取所有子对象

Returns

NE[]

Inherited from

TextNode.getChildren


getComputedStyle

getComputedStyle(): Style

获取:主题、自定义样式类、css方法三者层叠后的样式结果

(只读,不要修改返回的对象)

Returns

Style

Inherited from

TextNode.getComputedStyle


getInLinks(): Link[]

Returns

Link[]

Inherited from

TextNode.getInLinks


getLinks(): Link[]

获取所有连接到本对象的Link

Returns

Link[]

Inherited from

TextNode.getLinks


getLocalPoint

getLocalPoint(t, segIndex?): PointLike

获取对象上某一点(本地坐标系)

Parameters

NameTypeDescription
tnumber[0-1] 在线段上的比例
segIndex?number线段索引(Node是矩形,有4条线段,索引:[0-3])可选项

Returns

PointLike

Inherited from

TextNode.getLocalPoint


getOutLinks(): Link[]

Returns

Link[]

Inherited from

TextNode.getOutLinks


getPoint

getPoint(t, segIndex?): PointLike

获取对象上某一点

Parameters

NameTypeDescription
tnumber[0-1] 在线段上的比例
segIndex?number线段索引(矩形,有4条线段,索引:[0-3])可选项

Returns

PointLike

Inherited from

TextNode.getPoint


getPointAnchor

getPointAnchor(x, y): AnchorProxy

根据本地坐标并生成一个 ’锚点‘

Parameters

NameType
xnumber
ynumber

Returns

AnchorProxy

Inherited from

TextNode.getPointAnchor


getRoot

getRoot(): TipNode

获取'root'对象, 沿着parent一直向上追溯 , 直到parent为null或Layer对象结束

Returns

TipNode

Inherited from

TextNode.getRoot


getSegmentAnchor

getSegmentAnchor(t, segIndex): AnchorProxy

获取并生成线段上某个位置的 ’锚点’

Parameters

NameType
tnumber
segIndexnumber

Returns

AnchorProxy

Inherited from

TextNode.getSegmentAnchor


getShape

getShape(): Shape

获取形状对象

Returns

Shape

Inherited from

TextNode.getShape


getStyle

getStyle(name): any

读取某个样式的值

Parameters

NameType
namestring

Returns

any

Inherited from

TextNode.getStyle


getWorldTransform

getWorldTransform(): Transform

获取世界坐标系变换

Returns

Transform

Inherited from

TextNode.getWorldTransform


hasChild

hasChild(child): boolean

是否拥有某个下级子对象

Parameters

NameType
childNE

Returns

boolean

Inherited from

TextNode.hasChild


hasChildren

hasChildren(): boolean

是否拥有子对象

Returns

boolean

Inherited from

TextNode.hasChildren


hasClass

hasClass(styleName): boolean

检测是否拥有某个样式类

js
node.hasClass('.focus');

Since

2.4.0

Parameters

NameType
styleNamestring

Returns

boolean

Inherited from

TextNode.hasClass


hasListener

hasListener(type): boolean

是否有该类型的监听

Parameters

NameType
typestring

Returns

boolean

Inherited from

TextNode.hasListener


hide

hide(): TipNode

隐藏

Returns

TipNode

Inherited from

TextNode.hide


hideAllChildren

hideAllChildren(): TipNode

隐藏所有下级节点

Returns

TipNode

Inherited from

TextNode.hideAllChildren


hitTest

hitTest(x, y): boolean

判断给定的坐标(世界坐标系)是否在对象内部

Parameters

NameType
xnumber
ynumber

Returns

boolean

Inherited from

TextNode.hitTest


isConnected

isConnected(): boolean

是否被任意Link连接到

Since

2.4.0

Returns

boolean

Inherited from

TextNode.isConnected


isVisible

isVisible(): boolean

判断是否可见

Returns

boolean

Inherited from

TextNode.isVisible


localToWorldXY

localToWorldXY(x, y): Object

将一个本地坐标转到世界坐标系

Since

2.5.0

Parameters

NameType
xnumber
ynumber

Returns

Object

NameType
xnumber
ynumber

Inherited from

TextNode.localToWorldXY


markDirty

markDirty(): void

标记矩阵脏, 需要重新计算触发重绘

Returns

void

Inherited from

TextNode.markDirty


pickable

pickable(): boolean

是否可被拾取到,默认返回:pointerEnabled 属性

js
pickable() {
   return this.pointerEnabled;
}

Returns

boolean

Inherited from

TextNode.pickable


querySelector

querySelector(querySelector): NE

功能类似querySelectorAll,但只返回第一个满足条件的对象或者null

Parameters

NameType
querySelectorstring | (child: Node | Link) => boolean

Returns

NE

Inherited from

TextNode.querySelector


querySelectorAll

querySelectorAll(querySelector?): NE[]

对象选择器

语法兼容DOM的Selector API标准(并不支持标准里的所有语法)

支持的语法形式如下:

js

//obj.querySelector(类名称), 例如:
let ellipseNodes = layer.querySelectorAll('EllipseNode');
let links = layer.querySelector('Link');

//obj.querySelector(样式名称),例如:
let serverNodes = layer.querySelectorAll('.server');
let activedObjs = layer.querySelectorAll('.active');

let arr = layer.querySelectorAll(obj => obj.x > 20 && obj.y < 100);

//obj.querySelector(ID);
let obj = layer.querySelectorAll('#123')[0];

//obj.querySelector([属性名称=""]); 
let arr = layer.querySelectorAll('[text="abc"]');
let arr2 = layer.querySelectorAll('[draggable=true]');

// obj.querySelector(类名称|样式名称[属性名称=""]); 
let obj = layer.querySelector('TextNode[x<=-200]');
let obj2 = layer.querySelector('.server[text="X86"]');

Parameters

NameType
querySelector?string | (child: Node | Link) => boolean

Returns

NE[]

Inherited from

TextNode.querySelectorAll


removeAllChildren

removeAllChildren(): TipNode

移除所有子对象

Returns

TipNode

Inherited from

TextNode.removeAllChildren


removeAllClass

removeAllClass(): TipNode

移除所有通过addClass添加的样式

js
obj.removeAllClass();

Returns

TipNode

Inherited from

TextNode.removeAllClass


removeAttribute

removeAttribute(name): void

移除一个属性

js
// 例如:
obj.removeAttribute('foo');

Parameters

NameType
namestring

Returns

void

Inherited from

TextNode.removeAttribute


removeChild

removeChild(child): TipNode

移除一个子对象

Parameters

NameType
childNE

Returns

TipNode

Inherited from

TextNode.removeChild


removeChildren

removeChildren(childs): TipNode

Parameters

NameType
childsNE[]

Returns

TipNode

Inherited from

TextNode.removeChildren


removeClass

removeClass(styleName): void

移除一个样式

js
obj.removeClass('.focus');

Parameters

NameType
styleNamestring

Returns

void

Inherited from

TextNode.removeClass


removeEventListener

removeEventListener(type, callback): void

Parameters

NameType
typestring
callbackFunction

Returns

void

Inherited from

TextNode.removeEventListener


removeFromParent

removeFromParent(): TipNode

从父容器中移除

Returns

TipNode

Inherited from

TextNode.removeFromParent


resize

resize(width, height): TipNode

设置尺寸

Parameters

NameTypeDescription
widthnumber宽度
heightnumber高度

Returns

TipNode

Inherited from

TextNode.resize


resizeWith

resizeWith(w, h): TipNode

原有尺寸基础上增加

Parameters

NameType
wnumber
hnumber

Returns

TipNode

Inherited from

TextNode.resizeWith


rotate

rotate(angle): TipNode

旋转

Parameters

NameTypeDescription
anglenumber旋转角度(弧度)

Returns

TipNode

Inherited from

TextNode.rotate


rotateWith

rotateWith(dAngle): TipNode

旋转-增量性

Parameters

NameTypeDescription
dAnglenumber旋转角度的增量(弧度制)

Returns

TipNode

Inherited from

TextNode.rotateWith


scale

scale(x, y): TipNode

缩放

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.scale


scaleBy

scaleBy(x, y): TipNode

按系数缩放, 在当前缩放的基础上再乘以指定缩放系数

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.scaleBy


setAttribute

setAttribute(name, value): void

设置自定义属性

Parameters

NameType
namestring
valueany

Returns

void

Inherited from

TextNode.setAttribute


setAttributes

setAttributes(attrs): TipNode

一次性设置多个属性

js
// 一次性设置多个属性
obj.setAttributes({
foo: 'abc',
bar: false
});

Parameters

NameType
attrsstring | { [key: string]: any; }

Returns

TipNode

Inherited from

TextNode.setAttributes


setOriginOnLink(t, lineSegmentIndex?): TipNode

将节点定位到连线的某个位置上,该位置随连线变化而变

Parameters

NameTypeDefault valueDescription
tnumberundefined位置百分比
lineSegmentIndexanynull线段索引(默认是null,表示中间的线段)

Returns

TipNode

Inherited from

TextNode.setOriginOnLink


setOriginPosition

setOriginPosition(position): TipNode

Parameters

NameType
positionRectPositionType

Returns

TipNode

Inherited from

TextNode.setOriginPosition


setSize

setSize(width, height): TipNode

设置尺寸, 与resize完全等价

Parameters

NameTypeDescription
widthnumber宽度
heightnumber高度

Returns

TipNode

Inherited from

TextNode.setSize


setStyle

setStyle(styleName, value): TipNode

设置某一个样式

Parameters

NameType
styleNameStyleKeyType
valueany

Returns

TipNode

Inherited from

TextNode.setStyle


setStyles

setStyles(styles): TipNode

背景和边框的设置语法参考css样式, 图形绘制的语法使用cavnas属性设置,如下:

js
node.setStyles({
   // 用类似css语法设置节点的:边框、字体、背景 的属性
   border: '10px gray',
   borderRadius: 10,
   font: 'bold 20px serif',
   color: 'gray',
   backgroundColor: "rgba(128,128,128,0.2)",

   // 内边距(边框和图形的间距)
   padding: 10,

   // 用Canvas绘图属性来设置节点内图形的:填充、画笔粗细、颜色、字体位置
   strokeStyle: 'gray',
   fillStyle: 'rgba(0,0,255,0.2)',
   lineWidth: 3, 
   textPosition: 'center',
   textBaseline: 'middle',
});

Parameters

NameType
stylesPartStyleOptionType

Returns

TipNode

Inherited from

TextNode.setStyles


setText

setText(v): void

Parameters

NameType
vstring

Returns

void

Inherited from

TextNode.setText


setXY

setXY(x, y): TipNode

设置坐标, translate的简写

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.setXY


setZIndex

setZIndex(index): void

设置zIndex

当两个同⽗元素z-index相同时,后⾯的元素显⽰在上⾯

Parameters

NameTypeDescription
indexnumber建议范围 [1, 999]

Returns

void

Inherited from

TextNode.setZIndex


show

show(): TipNode

显示

Returns

TipNode

Inherited from

TextNode.show


showAllChildren

showAllChildren(): TipNode

显示所有下级节点

Returns

TipNode

Inherited from

TextNode.showAllChildren


skew

skew(skewX, skewY): TipNode

错切

Parameters

NameType
skewXnumber
skewYnumber

Returns

TipNode

Inherited from

TextNode.skew


toJSON

toJSON(): any

Returns

any

Inherited from

TextNode.toJSON


translate

translate(x, y): TipNode

平移对象,与setXY()完全等价

只是从图形的语义上平移更接近本质:有相对性的意识

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.translate


translateTo

translateTo(x, y): TipNode

平移对象到指定位置(x,y)

Deprecated

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.translateTo


translateWith

translateWith(x, y): TipNode

增量平移对象, 在对象原有的坐标基础上,增加偏移(dx,dy)。相当于: x += dx; y += dy。

Parameters

NameType
xnumber
ynumber

Returns

TipNode

Inherited from

TextNode.translateWith


update

update(): void

请求更新画面

Returns

void

Inherited from

TextNode.update


updateZIndex

updateZIndex(): TipNode

更新直接下级子对象的zIndex

Returns

TipNode

Inherited from

TextNode.updateZIndex


worldToLocalXY

worldToLocalXY(x, y): Object

将一个世界坐标转到本地坐标系

Since

2.6.0

Parameters

NameType
xnumber
ynumber

Returns

Object

NameType
xnumber
ynumber

Inherited from

TextNode.worldToLocalXY