JavaScript键盘事件的个人笔记

上期答疑

1.实现一个方块可以拖拽的小demo

var div1 = document.getElementsByClassName("box1")[0];
function getStyle(elem,prop){
    if(window.getComputedStyle){
        return window.getComputedStyle(elem,null)[prop];
    }else{
        return  elem.currentStyle[prop];//ie兼容
    }
};//前面章节封装的获取元素计算样式,返回字符型
var disY,disX;
div1.onmousedown = function (e){//鼠标按下
    disX = e.pageX - parseInt(getStyle(div1,'left'));
    //event.pageX返回鼠标指针的位置(纯值),相对于文档的左边缘
    disY = e.pageY - parseInt(getStyle(div1,'top'));
    //返回鼠标指针的位置,相对于文档的上边缘
    document.onmousemove = function (e){//鼠标移动
        var event = e || window.event;
        div1.style.left = event.pageX - disX + "px";//设置元素的属性值
        div1.style.top = event.pageY - disY + "px";
    }
    document.onmouseup = function(){
        document.onmousemove = null;//松开后清空onmousemove函数
    }
}

一、键盘事件

keydown:在键盘上按下某个键时触发。如果按住某个键,会不断触发该事件。
keyup:按下某个键盘键并释放时触发。如果按住某个键,会不断触发该事件。
keypress:释放某个键盘键时触发。该事件仅在松开键盘时触发一次。(keypress!+keydown+keyup)
顺序为keydown > keypress > keyup

var input = document.getElementsByTagName('input')[0];
input.onkeydown = function (e){
    console.log(e);
}

在这里插入图片描述

二、keydown和keypress的区别

1.keydown监听所有键盘类按键,keypress是字符类按键(ASK码)
2.keydown监听字符类按键不准(例如Aa小写)
event.which 属性返回指定事件上哪个键盘键或鼠标按钮被按下。
键盘事件属性

input.onkeypress = function (e){
    console.log(e.which);
}

在这里插入图片描述

三、键盘事件属性

键盘定义了很多属性,如下表所示。利用这些属性可以精确控制键盘操作。
在这里插入图片描述
keyCode 和 charCode 属性使用比较复杂,但是它们在实际开发中又比较常用,故比较这两个属性在不同事件类型和不同浏览器中的表现时非常必要的,如下表所示。读者可以根据需要有针对性的选用事件响应类型和引用属性值。
在这里插入图片描述
某些键的可用性不是很正确,如 PageUp 和 Home 键等。不过常用功能键和字符键都是比较稳定的,如下表所示。

在这里插入图片描述
注:以上图表取自中文网.

博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的博客啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值