onmousedown时,判断点击的是哪个鼠标键
e.button
IE8 e.button (用 ev.which 判断IE8是undefined)
左键1 中键4 右键2 左右一起 3
其他 e.button (也可以用 e.which)
左键0 中键1 右键2
键盘事件:
能获得焦点的元素才能有键盘事件
onkeydown 一直按着一直触发 / onkeypress press只响应能键入内容的按键 和 enter
onkeyup 抬起就一次
键值
e.keyCode
键盘 控制 盒子运动
var oBox = document.getElementById("box");
var step = 1;
document.onkeydown = function (ev) {
ev = ev || window.event;
var keyCode = ev.keyCode;
var sL = oBox.offsetLeft;
var sT = oBox.offsetTop;
switch (keyCode){
case 37: //左
sL -= step;
break;
case 38: //上
sT -= step;
break;
case 39: //右
sL += step;
break;
case 40: //下
sT += step;
break;
}
oBox.style.left = sL + 'px';
oBox.style.top = sT + 'px';
}
两个键同时检测 , 添加定时器
var oBox = document.getElementById("box");
var step = 1;
document.onkeydown = function (ev) {
ev = ev || window.event;
var keyCode = ev.keyCode;
switch (keyCode){
case 37: //左
if ( oBox.m37 === undefined ){
oBox.m37 = setInterval(function () {
oBox.style.left = oBox.offsetLeft - step + 'px';
},10);
}
break;
case 38: //上
if ( oBox.m38 === undefined ){
oBox.m38 = setInterval(function () {
oBox.style.top = oBox.offsetTop - step + 'px';
},10);
}
break;
case 39: //右
if ( oBox.m39 === undefined ){
oBox.m39 = setInterval(function () {
oBox.style.left = oBox.offsetLeft + step + 'px';
},10);
}
break;
case 40: //下
if ( oBox.m40 === undefined ){
oBox.m40 = setInterval(function () {
oBox.style.top = oBox.offsetTop + step + 'px';
},10);
}
break;
}
};
document.onkeyup = function (ev) {
ev = ev || window.event;
switch (ev.keyCode){
case 37:
clearInterval(oBox.m37);
oBox.m37 = undefined;
break;
case 38:
clearInterval(oBox.m38);
oBox.m38 = undefined;
break;
case 39:
clearInterval(oBox.m39);
oBox.m39 = undefined;
break;
case 40:
clearInterval(oBox.m40);
oBox.m40 = undefined;
break;
}
}