<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/konva@9.3.18/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Simple Drag Bounds 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(); stage.add(layer);
var rectHeight = 50; var rectY = (stage.height() - rectHeight) / 2;
var hbox = new Konva.Text({ x: 20, y: 70, fontSize: 24, fontFamily: 'Calibri', text: 'horizontal', fill: 'black', padding: 15, draggable: true, dragBoundFunc: function (pos) { return { x: pos.x, y: this.absolutePosition().y, }; }, }); layer.add(hbox); var originalY = hbox.y(); hbox.on('dragmove', () => { hbox.y(originalY); });
var vbox = new Konva.Text({ x: 150, y: 70, draggable: true, fontSize: 24, fontFamily: 'Calibri', text: 'vertical', fill: 'black', padding: 15, }); layer.add(vbox); var originalX = vbox.x(); vbox.on('dragmove', () => { vbox.x(originalX); }); </script> </body> </html>
|