目录
onkeyup:某一个按键被松开时触发
onkeydown:某一个按键被按下时触发
onkeypress:某一个按键被按下时触发(不识别功能键)
键盘事件中有一个比较重要的事件对象:keyCode
使用
e.keyCode
可以得到对应的ASCII码值
tips:keyCode是不区分大小写的--A--a得到的ASCII码值都为65
而keypress是区分大小写的--A得到的是65--a得到的是97
<body>
<a href="javascript:;">你好</a>
</body>
<script>
const a = document.querySelector('a')
//我们需要手动获取a链接的焦点,然后按下键盘
a.addEventListener('keypress',(e)=> {
if(e.keyCode == 65){a.style.fontSize = '50px'}
})
</script>
案例——键盘输入弹出显示框
代码还有待优化,目前只是应用实现一个demo
<!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>
*{
margin: 0;
padding: 0;
}
input{
width: 50vw;
position:absolute;
top: 10%;
left: 50%;
transform: translate(-50%);
border: 2px solid #000;
outline: none;
border-radius: 5px;
}
div{
position: relative;
width: 50vw;
left: 25%;
height: 5vh;
background-color: #000;
color: #fff;
border-radius: 10px;
display: none;
font-size: 20px;
font-weight: bold;
padding-left: 5vh;
}
.one{
display: block;
width: 0;
height: 0;
border-top: 10px solid #000;
border-left: 10px solid #000;
border-right: 10px solid transparent;
border-bottom: 10px solid transparent;
transform: rotate(-135deg);
position: absolute;
top: 3vh;
left: 2vh;
border-radius: 2px;
}
</style>
</head>
<body>
<input type="text">
<div>
<i class="one"></i>
</div>
</body>
<script>
const input = document.querySelector('input')
//在文档对象中,按下83ASCII码键,输入框获得焦点
document.addEventListener('keyup',function(e){
// console.log(e.keyCode)
if(e.keyCode === 83){
input.focus()
}
})
//当键盘输入时,输入框有值做出相应操作
var div = document.querySelector('div');
input.addEventListener('keyup',function(e){
if(this.value !== ''){
div.style.display = 'block';
div.innerHTML = this.value;
}else{
div.style.display = 'none';
}
})
//输入框失去焦点,上方的弹出显示也消失
input.addEventListener('blur',function(e){
div.style.display = 'none';
})
//获取焦点后判断是否有值,再次执行相应操作
input.addEventListener('focus',function(e){
if(this.value == ''){
div.style.display = 'none';
}else{
div.style.display = 'block';
}
})
</script>
</html>