#box1{ width: 100px; height: 100px; background-color: red; position: fixed; top: 50px; }
</style>
<script>
window.onload = function(){ /** * 使 div 可以根据不同的方向键 向不同的方向移动 * 按左键 div 向左移 * 按右键 div * ... * */ var box1 = document.getElementById("box1");
document.onkeydown = function(event){ event = event || window.event;
// 定义一个 变量 来表示 移动的速度 var speed = 10;
// 当用户按了 ctrl 以后, 速度加快 if(event.ctrlKey){ speed = 500; }
/** * 37 左 * 38 上 * 39 右 * 40 下 */ switch (event.keyCode) { case 37: // alert("向左"); // left 值减小 box1.style.left = box1.offsetLeft - speed + 'px' break; case 39: // alert("向右"); box1.style.left = box1.offsetLeft + speed + 'px' break; case 38: // alert("向上"); box1.style.top = box1.offsetTop - speed + 'px' break; case 40: // alert("向下"); box1.style.top = box1.offsetTop + speed + 'px' break; default: break; } if(event.key){
}
} /** * 键盘事件 * onkeydown * 按键被按下 * 对于onkeydown 来说 如果一直按着 某个按键不松手 则事件会一直触发 * 当onkeydown 连续触发时, 第一次和第二次之间会间隔稍微长一点,其他的会非常的快 * 这种设计 是为了 防止误操作的发生 * onkeyup * 按键被松开 * * 键盘事件一般 都会绑定给一些可以获取到焦点的对象 或者 document */
// document.onkeydown = function(event){ // event = event || window.event;
/** * 可以通过 keyCode 来获取按键的编码 * 通过它 可以判断哪个按钮被按下了 * 除了 keyCode 事件对象中还提供了几个属性 * altKey * ctrlKey * shiftKey * 这三个用来判断 alt ctrl 和 shift 是否被按下 * 如果按下则返回true,否则返回 false */
// 判读一个 y 是否被按下 // if(event.keyCode === 89){ // console.log('y被按下了'); // }
// 判断 y 和 ctrl 是否被同时按下 // if(event.keyCode === 89 && event.ctrlKey){ // console.log('ctrl+y都被按下了'); // }
// // console.log(event.keyCode); // }
// document.onkeyup = function(){ // console.log('按键松开了'); // }
// 获取input // var input = document.getElementsByTagName("input")[0]; // input.onkeydown = function(event){ // event = event || window.event; // // 数字 48-57 禁止输入数字 // if(event.keyCode >= 48 && event.keyCode <=57){ // // 取消默认行为 // return false; // } // 只能输入数字 // if(event.keyCode >= 48 && event.keyCode <=57){ // }else{ // // 取消默认行为 // return false; // } // console.log(event.keyCode); // } }
</script> </head> <body > <div id="box1"></div>
<input type="text"> </body> </html>