JavaScript event事件

Event对象简介
当事件发生时,会自动向事件调用函数,传递一个event参数。那么,这个event参数,就是event对象。
Event对象的作用:可以获取当前事件发生时的环境信息。如:点击时的坐标值。
Event对象是短暂存在的,也就是:当一个新的事件发生时,这个event对象就消失了。
每时每刻,只能有一个事件发生。每时每刻,只能有一个event对象产生。

一、DOM中Event对象——标准浏览器(火狐、谷歌)
1、DOM中引入Event对象

(1)通过HTML标记的事件属性来传递event对象
提示:在传递event时,该event参数,必须全小写,并且不能加引号。
(2)使用元素对象的事件属性来传递event对象

2、DOM中Event对象属性
type:事件类型
clientX和clientY:相对浏览器窗口的坐标。(包括滚动条)
pageX和pageY:相对网页左端和顶端的距离。(不包括滚动条)
screenX和screenY:相对显示屏幕左端和顶端的距离。


二、IE中Event对象
在IE中,event是window对象的一个属性。如:window.event或event。所以js函数中不用传递参数,直接使用。

IE中Event对象属性
type:事件类型
clientX和clientY:相对浏览器窗口的坐标。
x和y:相对于网页的坐标。

screenX和screenY:相对于屏幕的坐标。


DOM中(火狐谷歌浏览器)通过HTML标记的event属性来传递event对象:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
//实例:单击图片,显示坐标值
function get_xy(e)
{
	var str = "窗口左边距离:"+e.clientX+",窗口上边距离:"+e.clientY;
	str += "\n网页左边距离:"+e.pageX+",网页顶边距离:"+e.pageY;
	str += "\n屏幕左边距离:"+e.screenX+",屏幕顶边距离:"+e.screenY;
	str += "\n事件类型:"+e.type;
	alert(str);
}
</script>
</head>
<body>
<img id="img01" width="400" src="images/01.jpg" οnclick="get_xy(event)" />   <!--event是固定写法,不带引号-->
</body>
</html>

DOM中(火狐谷歌浏览器)在JavaScript中用元素对象的事件属性来传递event对象:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
//实例:单击图片,显示坐标值
window.onload = function()
{
	//获取id=img01的元素对象
	var imgObj = document.getElementById("img01");
	//绑定onclick事件:这种情况不能带括号,也不能传参数
	//但是,第一个形参,就是event对象。
	imgObj.onclick = get_xy; //传地址,不带括号。带括号就相当于执行。
}
function get_xy(e)//必须接收event参数,第一个形参就是event对象。
{
	var str = "窗口左边距离:"+e.clientX+",窗口上边距离:"+e.clientY;
	str += "\n网页左边距离:"+e.pageX+",网页顶边距离:"+e.pageY;
	str += "\n屏幕左边距离:"+e.screenX+",屏幕顶边距离:"+e.screenY;
	str += "\n事件类型:"+e.type;
	alert(str);
}
</script>
</head>
<body>
<img id="img01" width="400" src="images/01.jpg" />
</body>
</html>

IE中引入event对象:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
//实例:在IE中,获取鼠标坐标值
function get_xy()
{
	var str = "窗口左边距离:"+event.clientX+",窗口上边距离:"+event.clientY; //event是window的一个属性,直接使用,不用通过参数传递。
	str += "\n网页左边距离:"+event.x+",网页顶边距离:"+event.y;  //ie中的x,y相当于DOM(火狐谷歌)中的pageX,pageY
	str += "\n屏幕左边距离:"+event.screenX+",屏幕顶边距离:"+event.screenY;
	str += "\n事件类型:"+event.type;
	alert(str);
}
</script>
</head>

<body>
<img width="400" src="images/01.jpg" onClick="get_xy()" />
</body>
</html>

为了兼容DOM(火狐谷歌)和IE浏览器,可以用三元运算符:

var x = e.clientX ? e.clientX : event.clientX;  //JavaScript中,用三元运算符兼容IE。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值