我们可以设置 draggable
为 true 或者使用 draggable()
方法使图形可以被拖拽。draggable()
方法会自动适配桌面端和移动端。
我们通过 on()
方法监听节点的 dragstart
、 dragmove
、 dragend
等拖拽事件,on()
方法需要传入事件类型和事件发生时执行的函数。
Konva Drag and Drop Demoview raw<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/konva@4.0.18/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Drag and Drop Demo</title> <style> body { margin: 0; padding: 0; overflow: hidden; background-color: #f0f0f0; } </style> </head> <body> <div id="container"></div> <script> var width = window.innerWidth; var height = window.innerHeight;
var stage = new Konva.Stage({ container: 'container', width: width, height: height });
var layer = new Konva.Layer(); var rectX = stage.width() / 2 - 50; var rectY = stage.height() / 2 - 25;
var box = new Konva.Rect({ x: rectX, y: rectY, width: 100, height: 50, fill: '#00D2FF', stroke: 'black', strokeWidth: 4, draggable: true });
box.on('mouseover', function() { document.body.style.cursor = 'pointer'; }); box.on('mouseout', function() { document.body.style.cursor = 'default'; });
layer.add(box); stage.add(layer); </script> </body> </html>
|