如何在Konva舞台上放置一个?

问题描述 投票:0回答:1

我需要点击舞台并使用其中的按钮更改颜色。我已经设法将一个按钮放在画布上的div中,但这次我需要按钮出现在我的舞台内

javascript konvajs
1个回答
0
投票

您可以绘制带有画布形状的按钮,或者您可以使用绝对位置的DOM <button>

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

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

var button = new Konva.Label({
  x: 20,
  y: 20,
  opacity: 0.75
});
layer.add(button);

button.add(new Konva.Tag({
  fill: 'black',
  lineJoin: 'round',
  shadowColor: 'black',
  shadowBlur: 10,
  shadowOffset: 10,
  shadowOpacity: 0.5
}));

button.add(new Konva.Text({
  text: 'Canvas button',
  fontFamily: 'Calibri',
  fontSize: 18,
  padding: 5,
  fill: 'white'
}));


button.on('click', () => {
    alert('clicked on canvas button');
})

document.querySelector('#button').addEventListener('click', () => {
    alert('clicked on DOM button');
})

layer.draw();
#button {
  position: absolute;
  top: 30px;
  left: 160px;
}
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Konva demo">
  <script src="https://unpkg.com/konva@^3/konva.min.js"></script>
  <meta charset="utf-8">
</head>
<body>
  <div id="container"></div>
  <button id="button">DOM button</button>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.