DIR : /home/kozerus/public_html/go/konva_keyboard.html

/home/kozerus/public_html/go

HTML5 Canvas Keyboard events
view raw

<!DOCTYPE html>
<html>
  <head>
    <script src="https://unpkg.com/konva@8.3.1/konva.min.js"></script>
    <meta charset="utf-8" />
    <title>Canvas Keyboard events Demo</title>
    <style>
      body {
        margin: 0;
        padding: 0;
        overflow: hidden;
        background-color: #f0f0f0;
      }
    </style>
  </head>

  <body>
    <div id="container"></div>
    <script>
      var stage = new Konva.Stage({
        container: 'container',
        width: window.innerWidth,
        height: window.innerHeight,
      });

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

      var circle = new Konva.Circle({
        x: stage.width() / 2,
        y: stage.height() / 2 + 10,
        radius: 70,
        fill: 'red',
        stroke: 'black',
        strokeWidth: 4,
      });

      layer.add(circle);

      var container = stage.container();

      // make it focusable

      container.tabIndex = 1;
      // focus it
      // also stage will be in focus on its click
      container.focus();

      const DELTA = 4;

      container.addEventListener('keydown', function (e) {
        if (e.keyCode === 37) {
          circle.x(circle.x() - DELTA);
        } else if (e.keyCode === 38) {
          circle.y(circle.y() - DELTA);
        } else if (e.keyCode === 39) {
          circle.x(circle.x() + DELTA);
        } else if (e.keyCode === 40) {
          circle.y(circle.y() + DELTA);
        } else {
          return;
        }
        e.preventDefault();
      });
    </script>
  </body>
</html>
//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer