<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/[email protected]/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Select Shape by Name Demo</title> <style> body { margin: 0; padding: 0; overflow: hidden; background-color: #f0f0f0; } #buttons { position: absolute; top: 5px; left: 10px; } #buttons > input { padding: 10px; display: block; margin-top: 5px; } </style> </head> <body> <div id="container"></div> <div id="buttons"> <input type="button" id="activate" value="Activate rectangle" /> </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(); for (var n = 0; n < 10; n++) { var circle = new Konva.Circle({ x: Math.random() * stage.width(), y: Math.random() * stage.height(), radius: Math.random() * 50 + 25, fill: 'red', strokeWidth: 3, stroke: 'black', });
layer.add(circle); }
var rect1 = new Konva.Rect({ x: 250, y: 90, width: 100, height: 50, fill: 'green', strokeWidth: 3, stroke: 'black', offset: { x: 50, y: 25, }, draggable: true, name: 'rectangle', });
var rect2 = new Konva.Rect({ x: 70, y: 90, width: 100, height: 50, fill: 'green', strokeWidth: 3, stroke: 'black', offset: { x: 50, y: 25, }, draggable: true, name: 'rectangle', }); layer.add(rect1); layer.add(rect2); stage.add(layer);
var tweens = [];
document.getElementById('activate').addEventListener( 'click', function () { var shapes = stage.find('.rectangle');
for (var n = 0; n < tweens.length; n++) { tweens[n].destroy(); }
shapes.forEach(function (shape) { tweens.push( new Konva.Tween({ node: shape, duration: 1, scaleX: Math.random() * 2, scaleY: Math.random() * 2, easing: Konva.Easings.ElasticEaseOut, }).play() ); }); }, false ); </script> </body> </html>
|