javascript-事件对象
一、事件对象
用来记录一些事件发生时的相关信息的对象
1.只有当事件发生的时候才能产生,只能在处理函数内部访问
2.处理函数结束后自动销毁
二、获取事件
window.event
(IE)
event
(火狐)
虽然是全局的属性,但是只能在函数内部访问。(因为它不记录任何信息,只有当事件发生的时候,它才会记录信息)
对象.on事件=function(e){
}
兼容写法
window.onload=function(e){
var ev=e||window.event;
document.write(ev);
}
三、事件对象的属性
3.1关于鼠标事件的事件对象
相对于浏览器位置的
clientX
当鼠标事件发生的时候,鼠标相对于浏览器x轴的位置
clientY
当鼠标事件发生的时候,鼠标相对于浏览器y轴的位置
<div id="box" style="width: 200px;height: 200px;border: 1px solid blue;"></div>
<script>
//获取鼠标相对于浏览器的位置
var box=document.getElementById("box");
document.onmouseover=function (e) {
var ev=e||window.event;
var cx=ev.clientX;
var cy=ev.clientY;
box.innerHTML="clientX:"+cx+" clientY:"+cy;
}
</script>
相对于屏幕位置的
screenX
当鼠标事件发生的时候,鼠标相对于屏幕x轴的位置
screenY
当鼠标事件发生的时候,鼠标相对于屏幕y轴的位置
<div id="box" style="width: 200px;height: 200px;border: 1px solid blue;"></div>
<script>
//获取鼠标相对于屏幕的位置
var box=document.getElementById("box");
document.onmouseover=function (e) {
var ev=e||window.event;
var sx=ev.screenX;
var sy=ev.screenY;
box.innerHTML="screenX:"+sx+" screenY:"+sy;
}
</script>
相对于事件源的位置的
(IE)
offsetX
当鼠标事件发生的时候,鼠标相对于事件源x轴的位置
offsetY
当鼠标事件发生的时候,鼠标相对于事件源y轴的位置
(火狐)
layerX
当鼠标事件发生的时候,鼠标相对于事件源x轴的位置
layerY
当鼠标事件发生的时候,鼠标相对于事件源y轴的位置
<div id="box" style="width: 200px;height: 200px;border: 1px solid blue;"></div>
<script>
//获取鼠标相对于事件源的位置
var box=document.getElementById("box");
document.onclick=function (e) {
var ev=e||window.event;
var x=ev.offsetX||ev.layerX;
var y=ev.offsetY||ev.layerY;
box.innerHTML="x:"+x+" y:"+y;
}
</script>
3.2关于键盘事件的事件对象
keyCode
获得键盘码
常用键盘码
空格 32
回车 13
ctrl 17
alt 18
左 37 上 38 右 39 下 40
altKey
判断alt键是否被按下 按下是true,反之是false
ctrlKey
判断ctrl键是否被按下 按下是true,反之是false
shiftKey
判断ctrl键是否被按下 按下是true,反之是false
type
用来检测事件的类型 主要是用于多个事件通用同一个事件处理程序的时候
<div id="box" style="width: 200px;height: 200px;border: 1px solid blue;"></div>
<script>
//获取键盘码
var box=document.getElementById("box");
document.onkeydown=function (e) {
var ev=e||window.event;
box.innerHTML="键盘码: "+ev.keyCode;
}
</script>
if(ev.altKey){
alert("alt键被按下");
}
<div id="box" style="width: 200px;height: 200px;border: 1px solid blue;"></div>
<script>
//获取键盘码
var box=document.getElementById("box");
document.onkeydown=function (e) {
var ev=e||window.event;
box.innerHTML="事件为: "+ev.type;
}
</script>
网友评论