Skip to content

事件系统

视图交互事件

通过鼠标、键盘或者各种可交互的组件与应用产生交互时触发的事件,如单击节点 'node:click' 等。

鼠标事件

事件node节点link连线(暂未启用)视图区域
单击node:clicklink:clickgraph:click
双击node:dblclicklink:dblclickgraph:dblclick
右键node:contextmenulink:contextmenugraph:contextmenu
鼠标按下node:mousedownlink:mousedowngraph:mousedown
移动鼠标node:mousemovelink:mousemovegraph:mousemove
鼠标抬起node:mouseuplink:mouseupgraph:mouseup
鼠标滚轮--graph:mousewheel
鼠标进入node:mouseenterlink:mouseenter-
鼠标离开node:mouseleavelink:mouseleave-

注意

需要注意的是,这里的 mousemove 事件和通常的鼠标移动事件有所区别,它需要在鼠标按下后移动鼠标才能触发。

除了 mouseenter 和 mouseleave 外,事件回调函数的参数都包含鼠标相对于画布的位置 x、y 和鼠标事件对象 e 等参数。

js
netGraph.on('node:click', ({ e, x, y, node }) => { })
netGraph.on('edge:click', ({ e, x, y, link }) => { })
netGraph.on('blank:click', ({ e, x, y }) => { })

netGraph.on('node:mouseenter', ({ e, node }) => { })
netGraph.on('edge:mouseenter', ({ e, edge }) => { })
netGraph.on('graph:mouseenter', ({ e }) => { })

画布缩放/平移

事件名回调参数说明
scale(sx,sy,ox,oy)缩放画布时触发,sxsy 是缩放比例,oxoy 是缩放中心。
resize(width,height)改变画布大小时触发,widthheight 是画布大小。
translate(tx,ty)平移画布时触发,txty 分别是 X 和 Y 轴的偏移量。
js
netGraph.on('scale', ({ sx, sy, ox, oy }) => { })
netGraph.on('resize', ({ width, height }) => { })
netGraph.on('translate', ({ tx, ty }) => { })

节点平移

事件名回调参数说明
node:move(e,x,y,node)缩放画布时触发,sxsy 是缩放比例,oxoy 是缩放中心。
node:moving(e,x,y,node)改变画布大小时触发,widthheight 是画布大小。
node:moved(e,x,y,node)平移画布时触发,txty 分别是 X 和 Y 轴的偏移量。

参数中的 xy 是鼠标相对于画布的坐标。

js
netGraph.on('node:move', ({ e, x, y, node }) => { })
netGraph.on('node:moving', ({ e, x, y, node }) => { })
netGraph.on('node:moved', ({ e, x, y, node }) => { })

添加/删除/修改

当节点/连线被添加到画布时,触发以下事件:

  • node:added
  • link:added

当节点/连线被移除时,触发以下事件:

  • node:removed
  • link:removed

当节点/边发生任何改变时,触发以下事件:

  • node:changed
  • link:changed

在 Graph 上监听:

js
netGraph.on('node:added', ({ node, index, options }) => { })
netGraph.on('node:removed', ({ node, index, options }) => { })
netGraph.on('node:changed', ({ node, options }) => { })

netGraph.on('link:added', ({ link, index, options }) => { })
netGraph.on('link:removed', ({ link, index, options }) => { })
netGraph.on('link:changed', ({ link, options }) => { })

Released under the MIT License.