Skip to content

@jtopo/core / Layer

Class: Layer ​

只用作展示的层,每个层对应一个Canvas. 只有加入到Layer中的对象(Node、Link及其子类的实例),才可能被绘制并显示出来.

js

// 创建
let layer = new Layer('myLayer');
stage.addLayer(layer);

// 常用方法

// 添加对象
layer.addChild(node);
layer.addChildren([node1, node2, link1, link2, node3]);

// 查找对象
let node = layer.querySelector('Node[name="node1"]');
let nodes = layer.querySelectorAll('.myClass');
let link = layer.querySelector('[text="myLink"]');

// 设置背景
// 颜色
layer.setStyles({
   background: 'gray'
});

Hierarchy ​

  • NE

    ↳ Layer

Table of contents ​

Constructors ​

Properties ​

Accessors ​

Methods ​

Constructors ​

constructor ​

new Layer(stage?)

Parameters ​

NameType
stage?string | Stage

Overrides ​

NE.constructor

Properties ​

afterRender ​

Optional afterRender: Function

渲染后回调

Inherited from ​

NE.afterRender


attributes ​

Readonly attributes: Record<string, any>

Since

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

Inherited from ​

NE.attributes


beforeRender ​

Optional beforeRender: Function

渲染前回调

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

Inherited from ​

NE.beforeRender


children ​

Readonly children: NE[]

子节点(直接下级)

Inherited from ​

NE.children


classList ​

Readonly classList: string[]

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

Inherited from ​

NE.classList


className ​

Readonly className: any

Overrides ​

NE.className


deep ​

deep: number

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

只读

Overrides ​

NE.deep


destroyed ​

Readonly destroyed: boolean

是否已经被销毁

Inherited from ​

NE.destroyed


draggable ​

draggable: boolean

是否可拖拽

Inherited from ​

NE.draggable


dropAllowed ​

dropAllowed: boolean

是否可以作为拖拽目标

Since

2.4.0

Inherited from ​

NE.dropAllowed


id ​

Optional id: string | number

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

Inherited from ​

NE.id


Readonly inLinks: Link[]

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

Inherited from ​

NE.inLinks


isLayer ​

Readonly isLayer: boolean

Overrides ​

NE.isLayer


Optional Readonly isLink: boolean

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

Inherited from ​

NE.isLink


isNode ​

Readonly isNode: boolean

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

Inherited from ​

NE.isNode


isSelected ​

Readonly isSelected: boolean

是否被选中了

Inherited from ​

NE.isSelected


name ​

Optional name: string

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

Inherited from ​

NE.name


Readonly outLinks: Link[]

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

Inherited from ​

NE.outLinks


parent ​

Optional parent: NE

上级对象

Inherited from ​

NE.parent


pointerEnabled ​

pointerEnabled: boolean

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

Since

2.6.0

Inherited from ​

NE.pointerEnabled


selectedStyle ​

Optional selectedStyle: NodeSelectedStyleOptionsType | LinkSelectedStyleOptionsType

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

Inherited from ​

NE.selectedStyle


serializeable ​

serializeable: boolean

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

Inherited from ​

NE.serializeable


showSelected ​

showSelected: boolean

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

Inherited from ​

NE.showSelected


stage ​

Readonly stage: Stage


style ​

Readonly style: Style

样式

Inherited from ​

NE.style


title ​

Optional title: string

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

Inherited from ​

NE.title


type ​

Optional type: string

类型,自定义类型

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

比用data属性更方便一点

Inherited from ​

NE.type

Accessors ​

background ​

set background(v): void

Deprecated

已经废弃

Parameters ​

NameType
vany

Returns ​

void


bottom ​

get bottom(): number

Since

2.4.0

Returns ​

number

Inherited from ​

NE.bottom

set bottom(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.bottom


data ​

get data(): Record<string, any>

Returns ​

Record<string, any>

Inherited from ​

NE.data

set data(v): void

Parameters ​

NameType
vRecord<string, any>

Returns ​

void

Inherited from ​

NE.data


displayList ​

get displayList(): (Node | Link)[]

Deprecated

已过时

Returns ​

(Node | Link)[]


height ​

get height(): number

Returns ​

number

Inherited from ​

NE.height

set height(v): void

设置高度

注意:高度不能为0

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.height


left ​

get left(): number

Since

2.4.0

Returns ​

number

Inherited from ​

NE.left

set left(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.left


nextSibling ​

get nextSibling(): NE

获取下一个兄弟节点

Returns ​

NE

下一个兄弟节点

Inherited from ​

NE.nextSibling


previousSibling ​

get previousSibling(): NE

获取前一个兄弟节点

Returns ​

NE

前一个兄弟节点

Inherited from ​

NE.previousSibling


get right(): number

Since

2.4.0

Returns ​

number

Inherited from ​

NE.right

set right(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.right


rotation ​

get rotation(): number

旋转角度 (弧度)

Returns ​

number

Inherited from ​

NE.rotation

set rotation(v): void

设置旋转角度 (弧度)

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.rotation


scaleX ​

get scaleX(): number

Returns ​

number

Inherited from ​

NE.scaleX

set scaleX(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.scaleX


scaleY ​

get scaleY(): number

Returns ​

number

Inherited from ​

NE.scaleY

set scaleY(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.scaleY


skewX ​

get skewX(): number

Returns ​

number

Inherited from ​

NE.skewX

set skewX(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.skewX


skewY ​

get skewY(): number

Returns ​

number

Inherited from ​

NE.skewY

set skewY(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.skewY


top ​

get top(): number

Since

2.4.0

Returns ​

number

Inherited from ​

NE.top

set top(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.top


visible ​

get visible(): boolean

Returns ​

boolean

Overrides ​

NE.visible

set visible(v): void

Parameters ​

NameType
vboolean

Returns ​

void

Overrides ​

NE.visible


width ​

get width(): number

Returns ​

number

Inherited from ​

NE.width

set width(v): void

设置宽度

注意:宽度不能为0

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.width


x ​

get x(): number

Returns ​

number

Inherited from ​

NE.x

set x(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.x


y ​

get y(): number

Returns ​

number

Inherited from ​

NE.y

set y(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.y


z ​

get z(): number

Returns ​

number

Inherited from ​

NE.z

set z(v): void

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.z


zIndex ​

get zIndex(): number

Deprecated

请使用 sortChildren 或者 NEHelper.raiseToTop、NEHelper.lowerToBottom等方法代替

Returns ​

number

Inherited from ​

NE.zIndex

set zIndex(v): void

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

通常情况下不要修改

Deprecated

请使用 sortChildren 或者 NEHelper.raiseToTop、NEHelper.lowerToBottom等方法代替

Parameters ​

NameType
vnumber

Returns ​

void

Inherited from ​

NE.zIndex

Methods ​

addChild ​

addChild(child): Layer

增加子对象

Parameters ​

NameType
childNE

Returns ​

Layer

Overrides ​

NE.addChild


addChildren ​

addChildren(childs): Layer

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

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

Parameters ​

NameType
childsNE[]

Returns ​

Layer

Overrides ​

NE.addChildren


addClass ​

addClass(styleName): Layer

增加一个样式

js
obj.addClass('.focus');

Parameters ​

NameType
styleNamestring

Returns ​

Layer

Inherited from ​

NE.addClass


addEventListener ​

addEventListener(type, callback): () => {}

Parameters ​

NameType
typeNEEventType
callback(e: any) => void

Returns ​

fn

(): Object

Returns ​

Object

Inherited from ​

NE.addEventListener


append ​

append(...childs): Layer

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

数量有上限(大于10万), 请使用 addChildren 代替

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

js
parent.append(node1, node2, node3, ...);

Since

2.6.17*

Parameters ​

NameType
...childsNE[]

Returns ​

Layer

Inherited from ​

NE.append


appendChild ​

appendChild(child): Layer

添加一个子对象

Parameters ​

NameType
childNE

Returns ​

Layer

Inherited from ​

NE.appendChild


clearStyles ​

clearStyles(): Layer

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

Returns ​

Layer

Inherited from ​

NE.clearStyles


contains ​

contains(targe): boolean

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

Parameters ​

NameType
targeNE

Returns ​

boolean

Inherited from ​

NE.contains


destroy ​

destroy(): void

销毁

Returns ​

void

Overrides ​

NE.destroy


dispatchEvent ​

dispatchEvent(event): void

分发事件

Parameters ​

NameType
eventObject

Returns ​

void

Inherited from ​

NE.dispatchEvent


draw ​

draw(ctx): void

Parameters ​

NameType
ctxany

Returns ​

void

Overrides ​

NE.draw


endLoopRender ​

endLoopRender(): void

Deprecated

请使用 定时器或requestAnimationFrame 配合 layer.update() 来控制

Returns ​

void


getAllLinks(): Link[]

递归式 获取所有连线对象

Returns ​

Link[]

所有连线对象


getAllNodes ​

getAllNodes(): NE[]

递归式 获取所有节点对象

Returns ​

NE[]

所有节点对象


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 ​

NE.getAttribute


getChildren ​

getChildren(): NE[]

获取所有子对象

Returns ​

NE[]

Inherited from ​

NE.getChildren


getComputedStyle ​

getComputedStyle(): Style

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

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

Returns ​

Style

Inherited from ​

NE.getComputedStyle


getConnectAutoPoint ​

getConnectAutoPoint(worldPoint): PointLike

Parameters ​

NameType
worldPointPointLike

Returns ​

PointLike

Inherited from ​

NE.getConnectAutoPoint


getInLinks(): Link[]

Returns ​

Link[]

Inherited from ​

NE.getInLinks


getIndex ​

getIndex(): number

获取节点在父节点中的索引

Returns ​

number

节点在父节点中的索引

Inherited from ​

NE.getIndex


getLinks(): Link[]

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

Returns ​

Link[]

Inherited from ​

NE.getLinks


getLocalPoint ​

getLocalPoint(t, segIndex?): PointLike

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

Parameters ​

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

Returns ​

PointLike

Inherited from ​

NE.getLocalPoint


getOutLinks(): Link[]

Returns ​

Link[]

Inherited from ​

NE.getOutLinks


getPoint ​

getPoint(t, segIndex?): PointLike

获取对象上某一点

Parameters ​

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

Returns ​

PointLike

Inherited from ​

NE.getPoint


getRenderSet ​

getRenderSet(): Set<Node | Link>

获取绘制到画布上集合

Returns ​

Set<Node | Link>


getRoot ​

getRoot(): Layer

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

Returns ​

Layer

Inherited from ​

NE.getRoot


getShape ​

getShape(): Shape

获取形状对象

Returns ​

Shape

Inherited from ​

NE.getShape


getStyle ​

getStyle(name): any

读取某个样式的值

Parameters ​

NameType
namestring

Returns ​

any

Inherited from ​

NE.getStyle


getWorldTransform ​

getWorldTransform(): Transform

获取世界坐标系变换

Returns ​

Transform

Inherited from ​

NE.getWorldTransform


hasChild ​

hasChild(child): boolean

是否拥有某个下级子对象

Parameters ​

NameType
childNE

Returns ​

boolean

Inherited from ​

NE.hasChild


hasChildren ​

hasChildren(): boolean

是否拥有子对象

Returns ​

boolean

Inherited from ​

NE.hasChildren


hasClass ​

hasClass(styleName): boolean

检测是否拥有某个样式类

js
node.hasClass('.focus');

Since

2.4.0

Parameters ​

NameType
styleNamestring

Returns ​

boolean

Inherited from ​

NE.hasClass


hasListener ​

hasListener(type): boolean

Parameters ​

NameType
typeNEEventType

Returns ​

boolean

Inherited from ​

NE.hasListener


hide ​

hide(): Layer

隐藏

Returns ​

Layer

Inherited from ​

NE.hide


hideAllChildren ​

hideAllChildren(): Layer

隐藏所有下级节点

Returns ​

Layer

Inherited from ​

NE.hideAllChildren


isConnected ​

isConnected(): boolean

是否被任意Link连接到

Since

2.4.0

Returns ​

boolean

Inherited from ​

NE.isConnected


isVisible ​

isVisible(): boolean

判断是否可见

Returns ​

boolean

Inherited from ​

NE.isVisible


localToWorldXY ​

localToWorldXY(x, y): Object

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

Since

2.5.0

Parameters ​

NameType
xnumber
ynumber

Returns ​

Object

NameType
xnumber
ynumber

Inherited from ​

NE.localToWorldXY


loopRender ​

loopRender(): void

Deprecated

请使用 定时器或requestAnimationFrame 配合 layer.update() 来控制

Returns ​

void


markMatrixDirty ​

markMatrixDirty(): void

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

Returns ​

void

Inherited from ​

NE.markMatrixDirty


on ​

on(type, callback): () => {}

Parameters ​

NameType
typeNEEventType
callback(e: any) => void

Returns ​

fn

(): Object

Returns ​

Object

Inherited from ​

NE.on


onUnmounted ​

onUnmounted(): void

当从Layer对象树中删除时

Returns ​

void

Inherited from ​

NE.onUnmounted


pickable ​

pickable(): boolean

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

js
pickable() {
   return this.pointerEnabled;
}

Returns ​

boolean

Inherited from ​

NE.pickable


prepend ​

prepend(...childs): Layer

在最前面添加对象

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

js
parent.prepend(node1, node2, node3, ...);

Since

2.6.17

Parameters ​

NameType
...childsNE[]

Returns ​

Layer

Inherited from ​

NE.prepend


querySelector ​

querySelector(querySelector): Node | Link

查询符合条件的第一个对象

Parameters ​

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

Returns ​

Node | Link

Overrides ​

NE.querySelector


querySelectorAll ​

querySelectorAll(querySelector?): (Node | Link)[]

查询所有符合条件的对象

Parameters ​

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

Returns ​

(Node | Link)[]

Overrides ​

NE.querySelectorAll


removeAllChildren ​

removeAllChildren(): Layer

移除所有子对象

Returns ​

Layer

Inherited from ​

NE.removeAllChildren


removeAllClass ​

removeAllClass(): Layer

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

js
obj.removeAllClass();

Returns ​

Layer

Inherited from ​

NE.removeAllClass


removeAttribute ​

removeAttribute(name): void

移除一个属性

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

Parameters ​

NameType
namestring

Returns ​

void

Inherited from ​

NE.removeAttribute


removeChild ​

removeChild(child): Layer

移除一个子对象

Parameters ​

NameType
childNE

Returns ​

Layer

Inherited from ​

NE.removeChild


removeChildren ​

removeChildren(childs): Layer

移除多个子对象, 比单个移除速度快很多,数量越多越明显!

Parameters ​

NameType
childsNE[]

Returns ​

Layer

Inherited from ​

NE.removeChildren


removeClass ​

removeClass(styleName): void

移除一个样式

js
obj.removeClass('.focus');

Parameters ​

NameType
styleNamestring

Returns ​

void

Inherited from ​

NE.removeClass


removeEventListener ​

removeEventListener(type, callback): void

Parameters ​

NameType
typeNEEventType
callback(e: any) => void

Returns ​

void

Inherited from ​

NE.removeEventListener


removeFromParent ​

removeFromParent(): Layer

从父容器中移除

js
// 等价于:
if (this.parent) {
this.parent.removeChild(this);
}

Returns ​

Layer

Inherited from ​

NE.removeFromParent


rotate ​

rotate(angle): Layer

Parameters ​

NameType
anglenumber

Returns ​

Layer

Inherited from ​

NE.rotate


scale ​

scale(x, y): Layer

Parameters ​

NameType
xnumber
ynumber

Returns ​

Layer

Inherited from ​

NE.scale


setAttribute ​

setAttribute(name, value): void

设置自定义属性

Parameters ​

NameType
namestring
valueany

Returns ​

void

Inherited from ​

NE.setAttribute


setAttributes ​

setAttributes(attrs): Layer

一次性设置多个属性

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

Parameters ​

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

Returns ​

Layer

Inherited from ​

NE.setAttributes


setBackground ​

setBackground(styleOption): Layer

设置样式,对于Layer只支持设置背景

Deprecated

Parameters ​

NameType
styleOptionObject
styleOption.background?string
styleOption.backgroundImage?string
styleOption.backgroundRepeat?string
styleOption.backgroundPosition?string
styleOption.backgroundSize?string

Returns ​

Layer


setStyle ​

setStyle(styleName, value): Layer

设置某一个样式

Parameters ​

NameType
styleNameStyleKeyType
valueany

Returns ​

Layer

Inherited from ​

NE.setStyle


setStyles ​

setStyles(styleOption): Layer

设置样式,对于Layer只支持设置背景,

Deprecated

请使用语义setBackground方法

Parameters ​

NameType
styleOptionPartStyleOptionType

Returns ​

Layer

Overrides ​

NE.setStyles


show ​

show(): Layer

显示

Returns ​

Layer

Inherited from ​

NE.show


showAllChildren ​

showAllChildren(): Layer

显示所有下级节点

Returns ​

Layer

Inherited from ​

NE.showAllChildren


sortChildren ​

sortChildren(sortFn): Layer

对子对象进行排序

Since

2.6.17

Parameters ​

NameTypeDescription
sortFn(a: NE, b: NE) => number排序函数

Returns ​

Layer

Inherited from ​

NE.sortChildren


toJSON ​

toJSON(): any

Returns ​

any

Inherited from ​

NE.toJSON


translate ​

translate(x, y): Layer

Parameters ​

NameType
xnumber
ynumber

Returns ​

Layer

Inherited from ​

NE.translate


update ​

update(): void

请求更新画面一次

Returns ​

void

Overrides ​

NE.update


updateZIndex ​

updateZIndex(): Layer

更新直接下级子对象的zIndex

Deprecated

请使用 sortChildren 或者 NEHelper.raiseToTop、NEHelper.lowerToBottom等方法代替

Returns ​

Layer

Inherited from ​

NE.updateZIndex


useDarkGridBackground ​

useDarkGridBackground(): void

使用暗色网格背景

Deprecated

已过时

Returns ​

void


useLightGridBackground ​

useLightGridBackground(): void

使用亮色网格背景

Deprecated

已过时

Returns ​

void


worldToLocalXY ​

worldToLocalXY(x, y): Object

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

Since

2.6.0

Parameters ​

NameType
xnumber
ynumber

Returns ​

Object

NameType
xnumber
ynumber

Inherited from ​

NE.worldToLocalXY