Skip to main content

HTML5 Canvas 桌面和移动设备事件支持教程

注意:此演示可能已经过时,因为现代浏览器支持指针事件。您也可以在 Konva 中使用指针事件。请参阅 指针事件演示。但如果您不想使用指针事件,请继续阅读...

要为桌面和移动应用程序中的形状添加事件处理程序,我们可以使用 on() 方法并传入成对的事件。例如,为了在桌面和移动应用程序中触发 mousedown 事件,我们可以使用 "mousedown touchstart" 事件对来覆盖这两种媒介。为了在桌面和移动应用程序中触发 mouseup 事件,我们可以使用 "mouseup touchend" 事件对。我们还可以使用 "dblclick dbltap" 事件对来绑定在桌面和移动设备上都有效的双击事件。

操作说明:在桌面或移动设备上点击、松开鼠标或触摸圆圈以观察相同的功能。

import Konva from 'konva';

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

const layer = new Konva.Layer();

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

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);
}

// 桌面和移动事件
circle.on('mousedown touchstart', function () {
  writeMessage('按下或触摸开始');
});

circle.on('mouseup touchend', function () {
  writeMessage('松开或触摸结束');
});

layer.add(circle);
layer.add(text);
stage.add(layer);