1.事件对象
* 事件:对某个元素的某种操作
* 事件对象:当某个事件触发时产生的对象,就是事件对象
* event使用前提,必须有事件
不同的对象产生的事件不同。
* 事件对象的兼容性(通常一个事件如果需要用到事件对象,直接无脑写兼容): var e = evt || event;
2.鼠标事件对象的属性
- 坐标属性
- pageX / pageY 相对于整个文档顶部和左侧的坐标(常用)
- clientX / clientY 相对于局部窗口的左侧和顶部的坐标(比较少用)
- offsetX / offsetY 相对于内部元素的距离左侧和顶部的坐标 常用于拖拽
document.onmousemove = function(evt){
//获取实
var e = evt || event;
var oImg = document.getElementById("myimg");
//操作图片X和Y的位置
oImg.style.left = e.pageX - oImg.offsetWidth/2 + "px";
oImg.style.top = e.pageY -oImg.offsetHeight/2 + "px";
}
3.键盘事件对象
-
onkeyup: 用户释放某一个按键时发生
-
onkeydown: 用户按下按键时发生,任何一个按键即可发生事件
-
onkeypress: 用户按下按键,并且产生一个字符时发生(意思就是说按ctrl这样的按键没有效果的)
-
事件对象的属性:
- keyCode: 获取键盘按键值 字母 对应其ASCII值识别
- A:65 a:97 0:48 回车:13
keyPress 的ctrl+回车返回值为10
- ctrlKey:返回当事件被触发时,“Ctrl” 是否被按下,返回值为true or false
键盘检测兼容写方法 - var key = e.keyCode || e.which || e.charCode;
//键盘事件源都是document
//键盘抬起的时间点触发
document.onkeyup = function(){
console.log("heihei");
}
//键盘落下的时间点触发
document.onkeydown = function(){
console.log("heihei");
}
//生成一个字符串触发
document.onkeypress = function(){
console.log("heihei");
}
//事件对象
document.onkeypress = function(evt){
var e = evt || event;
//65 97 48字符0 32空格 13回车
//keyCode:获取按下字符的ASC码值
//兼容写法
var key = e.keyCode || e.which || e.charCode;
console.log(key);
//ctrl + 回车 10
if(key == 10 && e.ctrlKey){
console.log("发送");
}
//判断ctrl是否被按下
console.log(e.ctrlKey);
// console.log(e.keyCode);
// console.log(e.which);
// console.log(e.charCode);
}
//console.log(String.fromCharCode(98));