JSFiddle - React, Tailwind, and code Playground

HTML

<div class="fixed"></div>
<div class="fixed a2"></div>
<div class="my"></div>

<code></code>

CSS

div {
    position:absolute;
    width:10px;
    height:10px;
    background:#f00;
}
.fixed {
    transform : translate(200px,200px);
    -webkit-transform : translate(200px,200px);
    background:#000;
}
.fixed.a2 {
    transform : translate(100px,240px);
    -webkit-transform : translate(100px,240px);
}
.my {
    transform : translate(170px, 180px);
    -webkit-transform : translate(170px, 180px);
}


@keyframes blink {
    0% {opacity:1;}
    50% {opacity:0;}
    100% {opacity:1;}
}
@-webkit-keyframes blink {
    0% {opacity:1;}
    50% {opacity:0;}
    100% {opacity:1;}
}
.blink {
    animation:blink 0.5s infinite;
    -webkit-animation:blink 0.5s infinite;
}

JavaScript

var my = $('.my');
var speed = 5;
save_position();
setInterval(move, 100);
var keys = {};

$(document).on('keydown',function(e) {
    my.addClass('blink');
    var code = (e.keyCode ? e.keyCode : e.which);
    keys[code] = true;
});

$(document).on('keyup',function(e) {
    my.removeClass('blink');
    var code = (e.keyCode ? e.keyCode : e.which);
    delete keys[code];
});

function save_position(x,y) {
    if(x&&y) {
        my.data('x',x).data('y',y);
    } else {
        var xy = my.css('-webkit-transform') || my.css('transform');
            xy = xy.substr(7, xy.length - 8).split(', ');
        my.data('x',xy[4]).data('y',xy[5]);
    }
}

function move() {
    for (var direction in keys) {
        if (!keys.hasOwnProperty(direction)) continue;
        var x = parseInt(my.data('x'));
        var y = parseInt(my.data('y'));
        if (direction == 38) {
            y = y-speed;
        }
        if (direction ==  40) {
            y = y+speed;
        }
        if (direction == 37) {
            x = x-speed;
        }
        if (direction == 39) {
            x = x+speed;
        }
        var over = false;
        if(!over) {
            my.css('transform','translate('+x+'px,'+y+'px)');
            save_position(x,y);
        }
    }
}