e.clientX,e.clientY, e.pageX , e.pageY , e.offsetX , e.offsetY , e.screenX , e.screenY

欢迎访问我的博客https://qqqww.com/,祝码农同胞们早日走上人生巅峰,迎娶白富美~~~

声明:参考文档你是如何理解var e=e||window.event的

刚才写博客《javascript实现简单拖曳功能》的时候,用到了e.clientX这一类坐标属性,就想到把这一类相似的属性都整理一下,他们分别为
e.clientX , e.clientY
e.pageX , e.pageY
e.offsetX , e.offsetY
e.screenX , e.screenY

e 是什么

这里先说一下 e 是什么

e 是给一个事件对象,可以在编写函数的时候,传入一个形参e,然后执行函数的时候传入一个实参,那么e这个时候就是这个作为实参的对象

var event = e || event

兼容性写法,这样写可能不太好理解,但是假如给他写成var event = event || window.event,或者写成var event = e ? event : window.event 想必就更好理解了

下面借用道友的一张图来说明一下针对于不同浏览器的兼容性问题

各浏览器获取时间对象列表

很显然,在Firefox浏览器中仅支持event,而且Forefox支持对象参数的传入,但是IE6/7/8是不支持对象参数的传入的,所以此种方法保证对所有浏览器的兼容

e.clientX , e.clientY

鼠标相对于浏览器窗口可视区域的X,Y坐标,可视区域不包括工具栏和滚动条,IE事件和标准事件支持

e.screenX , e.screenY

上面讲了e.clientX , e.clientY,再讲e.screenX , e.screenY感觉再合适不过了,因为是鼠标相对于屏幕的坐标,包括浏览器上面的工具栏和滚动条,二者差别就在这,IE事件和标准事件支持

e.pageX , e.pageY

相对于文档的定位,文档的左上角为(0,0),向右为正,向下为正,IE不支持

e.offsetX , e.offsetY

e.pageX , e.pageY一模一样的功能,但是这两个属性只有IE支持

相关的一些写法

在文档中的位置Y坐标等于在可视区域的Y坐标加上滚动条垂直方向卷去的距> 离:
e.pageY = e.pageY || e.clientY + (window).scrollTop()(window).scrollTop():浏览器滚动条滚动的垂直距离

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,581评论 1 11
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,068评论 0 2
  • JavaScript 与 HTML 之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬...
    LemonnYan阅读 703评论 0 4
  • 本节介绍各种常见的浏览器事件。 鼠标事件 鼠标事件指与鼠标相关的事件,主要有以下一些。 click 事件,dblc...
    许先生__阅读 2,541评论 0 4
  • 本来想和上一篇一起写,又担心太长,导致自己复习时,看不下去,于是就另写一篇笔记。 ClientX与ClientY返...
    Miss____Du阅读 8,316评论 3 6