JS-键盘事件之方向键移动元素

简介: 注意三点: 1:事件名称onkeydown。 2:事件加给document,而非window。 3: 把元素的top,left值分别用offsetTop,offsetLeft来设定。 DOCTYPE html> 键盘移动 ...

注意三点:
 1:事件名称onkeydown。
 2:事件加给document,而非window。
 3: 把元素的top,left值分别用offsetTop,offsetLeft来设定。

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>键盘移动</title>
        <style type="text/css">
            *{margin: 0;padding: 0;}
            h3{
                position: absolute;
                width: 200px;
                background: cadetblue;
                color: #fff;
                padding: 20px;
            }
        </style>
    </head>
    <body>
        <h3 id="h3">
            注意三点:<br />
            1:事件名称onkeydown<br />
            2:事件加给document,而非window。<br />
            3: 把元素的top,left值分别用offsetTop,offsetLeft来设定
        </h3>
        
    </body>

js效果:【这里用了switch语句来进行判断】

<script type="text/javascript">
        window.onload = function(){
            var oH3 = document.getElementById("h3");
            document.onkeydown = function(ev){
                var ev = ev || window.event;
                switch(ev.keyCode){
                    case 37:
                    case 100:
                        oH3.style.left =  oH3.offsetLeft - 10 + "px";
                    break;
                    case 38:
                    case 104:
                        oH3.style.top = oH3.offsetTop - 10 + "px";
                    break;
                    case 39:
                    case 102:
                        oH3.style.left = oH3.offsetLeft + 10 + "px";
                    break;
                    case 40:
                    case 98:
                        oH3.style.top = oH3.offsetTop + 10 + "px";
                    break;
                    default:
                        console.log("请按上下左右键");
                    break;
                }
                console.log(oH3.offsetTop+"+"+oH3.style.top);
                console.log(ev.keyCode);
                
            }
        }
    </script>

键值 keyCode说明:

数字小键盘中对应的上下左右:

目录
相关文章
|
19天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
2月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
72 4
|
3月前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
46 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
2月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
39 4
|
2月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
51 1
|
3月前
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
28 2
|
3月前
|
JavaScript 前端开发
js删除数组最后一个元素
js删除数组最后一个元素
|
3月前
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
3月前
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法