Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <style>
      #container {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 110vh;
      }
      #draggableDiv {
        width: 100px;
        height: 100px;
        background-color: red;
        cursor: grab;
        user-select: none;
      }
      #konvaContainer {
        border: 1px solid black;
      }
    </style>
<meta name="description" content="Konva demo">
  <script src="https://unpkg.com/konva@^2/konva.min.js"></script>
  <meta charset="utf-8">
</head>
<body>
  <div id="container">
    <div id="draggableDiv" draggable="true">Drag me</div>
      <div id="konvaContainer"></div>
  </div>
</body>
</html>
 
body {
  padding: 0;
  margin: 0;
}
 
// Create Konva Stage and Layer
      var stage = new Konva.Stage({
        container: "konvaContainer",
        width: 500,
        height: 500,
      });
      var layer = new Konva.Layer();
      stage.add(layer);
      // Create a rectangle
      var rect = new Konva.Rect({
        x: 50,
        y: 50,
        width: 100,
        height: 100,
        fill: "green",
        draggable: true,
      });
      layer.add(rect);
      layer.draw();
      // Handle drag events
      document
        .getElementById("draggableDiv")
        .addEventListener("dragstart", function (e) {
          e.dataTransfer.setData("text/plain", "dragging");
        });
      stage.container().addEventListener("dragover", function (e) {
        e.preventDefault(); // Necessary for the drop event to work
      });
      stage.container().addEventListener("drop", function (e) {
        e.preventDefault();
        stage.setPointersPositions(e);
        var pos = stage.getPointerPosition();
        rect.position({
          x: pos.x - rect.width() / 2,
          y: pos.y - rect.height() / 2,
        });
        layer.draw();
      });
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers