Skip to main content

HTML5 Canvas Canvas Multi-Event Binding Tutorial

To bind multiple events to a single handler with Konva, we can use the on() method and pass in a space delimited string containing multiple event types.

shape.on('mouseover mousedown mouseup', function (e) {
console.log('events: ' + e.type);
});

Instructions: Mouseover, mousedown, and mouseup over the circle to observe that the function bound to the circle is executed for each event.

import Konva from 'konva';

const stage = new Konva.Stage({
  container: 'container',
  width: window.innerWidth,
  height: window.innerHeight,
});

const layer = new Konva.Layer();
stage.add(layer);

const text = new Konva.Text({
  x: 10,
  y: 10,
  fontFamily: 'Calibri',
  fontSize: 24,
  text: '',
  fill: 'black',
});
layer.add(text);

const circle = new Konva.Circle({
  x: stage.width() / 2,
  y: stage.height() / 2,
  radius: 70,
  fill: 'red',
  stroke: 'black',
  strokeWidth: 4,
});

function writeMessage(message) {
  text.text(message);
  layer.draw();
}

circle.on('mouseover mousedown mouseup', function (evt) {
  writeMessage('event: ' + evt.type);
});

layer.add(circle);