js键盘移动事件

keyboard_box_move

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
    
    
            padding: 0;
            margin: 0;
        }
        #box {
      
      
            position: relative;
            margin: 100px auto;
            width: 350px;
            height: 500px;
            overflow: hidden;
            border: 2px solid #000;
        }
        #box #el { 
        
            position: absolute;
            left: 0;
            bottom: 0;
            width: 10px;
            height: 10px;
            background-color: red;
        }
    </style>
</head>
<body>
    

    <div id="box">
        <div id="el"></div>
    </div>

    <script>

        let keysArr = [];
        let el = document.getElementById('el');


        document.onkeydown = function(e) {
    
    

            let keycode = e.keyCode;

            if (keycode == 37 || keycode == 38 || keycode == 39 || keycode == 40) {
    
    
                if (keysArr.indexOf(keycode) < 0) keysArr.push(keycode);
            }


            // []
            //上:38 下:40 左:37 右39

            let top = el.offsetTop,
                left = el.offsetLeft;
                console.log(keysArr);

            if (keysArr.indexOf(38) >= 0 && top > 0) {
    
    
                el.style.top = top - 10 + 'px';
            }

            if (keysArr.indexOf(40) >= 0 && top < 490) {
    
    
                el.style.top = top + 10 + 'px';
            }

            if (keysArr.indexOf(39) >= 0 && left < 340) {
    
    
                el.style.left = left + 10 + 'px';
            }

            if (keysArr.indexOf(37) >= 0 && left > 0) {
    
    
                el.style.left = left - 10 + 'px';
            }

        }

        document.onkeyup = function(e) {
    
    
            let keycode = e.keyCode;

            if (keycode == 37 || keycode == 38 || keycode == 39 || keycode == 40) {
    
    
                if (keysArr.indexOf(keycode) >= 0) keysArr.splice(keysArr.indexOf(keycode), 1);
            }
        }


    </script>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_45753588/article/details/124821409