鼠标的screen,client和page三个重要坐标系列

鼠标的screen,client和page三个重要坐标系列

作为一名前端开发人员,我们有时候需要获取鼠标在页面上的点击位置,我们都知道鼠标的点击事件中有screen,client和page三个系列的坐标,那马我们下面就来具体分析一下:

三个重要坐标.js:

document.onclick = function (event) {
	var event = event || window.event;
	console.log('screen: ' + event.screenX + '--' + event.screenY);
	console.log('client: ' + event.clientX + '--' + event.clientY);
	console.log('page: ' + event.pageX + '--' + event.pageY);
}

在这里插入图片描述
说明:
@ screenX/Y: 是鼠标在屏幕中的坐标;
由于我的电脑拓展了一台显示器,然后是在显示器上打开的浏览器,所以是screenX = 1600(电脑分辨率设置宽度)+clientX/pageX;
@ clientX/Y: 鼠标在窗口中的坐标;
即上图中相对于窗口视口中绿色箭头标注的位置.
@ pageX/Y: 鼠标在页面中的坐标;
因为现在的整个窗口展示的是整个页面,所以page系列的坐标是与client系列的坐标是相同的.
如果:
我们给页面的body加个高度,让页面出现滚动条

body {
	height: 3000px;
}

页面右边就会出现滚动条.然后:
在这里插入图片描述
说明:
@ pageY = clientY + window.scrollY(页面顶部滚出去的距离);
我们打印一下scrollY,验证一下:
在这里插入图片描述
pageY(995) = clientY(298) + window.scrollY(697);
pageX也是同理.
所以,当我们要获取鼠标在页面上的点击位置时,可以使用下面代码:

document.onclick = function (event) {
	var event = event || window.event;
	// IE6,7,8不支持pageX/Y,但是会支持clientX/Y
	var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
	var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值