chrome:

e.pageX——相对整个页面的坐标

e.layerX——相对当前坐标系的border左上角开始的坐标

e.offsetX——相对当前坐标系的border左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对可视区域的坐标

ff:

e.pageX——相对整个页面的坐标

e.layerX——相对当前坐标系的border左上角开始的坐标

e.offsetX——无

e.clientX——相对可视区域的坐标

e.x——无

opera:

e.pageX——相对整个页面的坐标

e.layerX——无

e.offsetX——相对当前坐标系的内容区域左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对可视区域的坐标

safari:(这个和chrome是一样的)

e.pageX——相对整个页面的坐标

e.layerX——相对当前坐标系的border左上角开始的坐标

e.offsetX——相对当前坐标系的border左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对可视区域的坐标

IE9:

e.pageX——相对整个页面的坐标

e.layerX——相对当前坐标系的border左上角开始的坐标 + 滚动条滚过的距离(这个NB轰轰了····=。=)

e.offsetX——相对当前坐标系的内容区域左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对当前坐标系的border左上角开始

IE8:

e.pageX——无

e.layerX——无

e.offsetX——相对当前坐标系的内容区域左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对当前坐标系的border左上角开始

IE7:

e.pageX——无

e.layerX——无

e.offsetX——相对当前坐标系的内容区域左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对当前坐标系的border左上角开始

IE6:

e.pageX——无

e.layerX——无

e.offsetX——相对当前坐标系的内容区域左上角开始的坐标

e.clientX——相对可视区域的坐标

e.x——相对当前坐标系的border左上角开始

2.PageX和clientX pageX指鼠标在页面上的位置,以页面左侧为参考点 clientX指可视区域内离左侧的距离,以滚动条滚动到的位置为参考点。各个浏览器相同。 即当有滚动条时clientX 小于 pageX

//ie678不识别pageX PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同) 页面上的位置=可视区域位置+页面滚动条切去高度-自身border高度,还是直接上图比较清楚

3、screenX 鼠标在屏幕中的位置,指的是鼠标到电脑屏幕左侧的距离。 各个浏览器相同。 与clientX的区别是clientX是到浏览器的距离。 例如:当网页缩小,拖动到屏幕中间时,screnX 大于 clientX

4、offsetX和layerX 为了兼容浏览器,layerX是FF、chrome识别,offsetX是除了FF之外。

如果触发元素设置了position,则offsetX等于layerX 如果页面有滚动条,添加滚动的距离。

layerX:FF特有,是相对于父元素的位置,鼠标相对于“触发事件的元素的层级关系中离该元素最近的,设置了position的父元素”的边界的位置,从border的左上角开始定位,即如果这个父

元素存在border,则坐标原点在border的左上角,而不是内容区域的左上角。 offsetX:IE特有,鼠标相对于“触发事件的元素”的位置,从内容区域左上角开始定位,不是从border左上角开始!这个属性比较好用,用来判断鼠标点在一个元素中的哪个位置很方便,FF

没有直接替换的属性。

event对象的clientX,offsetX,screenX,pageX的更多相关文章

  1. 一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别

    总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀....) 先总结下区别: event.c ...

  2. event对象的clientX,offsetX,screenX,pageX和offsetTop,offsetHeight等等

    先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 eve ...

  3. [1]区分event对象中的[clientX,offsetX,screenX,pageX]

    前言 在平时的开发中,非常讨厌的就是兼容性了,兼容性的问题总会让我们记忆混淆,所以这次来区分一下event对象中的常用获取鼠标位置. clientX clientY event.clientXeven ...

  4. clientX,offsetX,screenX,pageX 区别!

    先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 eve ...

  5. clientX,offsetX,layerX,pageX,screenX,X鼠标位置全解

    clientX,offsetX,layerX,pageX,screenX,X有时容易记混,通过测试当前的主流浏览器疏理了自己的一些看法以供参考. Chrome下(测试版本为51.0.2704.106  ...

  6. offsetHeight,scrollHeight,clientHeight,scrollTop以及pageX,clientX,offsetX,screenX,offsetLeft,style.left等的区别以及使用详解

    一.写在前面 在阅读本文前,希望大家能针对每个属性亲手测试,网上现有的大量相关博客都有不等的概念错误,毕竟亲手实践才能更好的掌握这些概念. 1.pageX,clientX,screenX与offset ...

  7. pageX,clientX,offsetX,screenX,offsetLeft,style.left,offsetWidth,scrollWidth的区别以及使用详解

    https://www.cnblogs.com/echolun/p/9231760.html

  8. clientX .offsetX .screenX x 的区别

    clientX 设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条. clientY 设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自 ...

  9. 图解Js event对象offsetX, clientX, pageX, screenX, layerX, x区别

    通过 3 张图和 1 张表格,轻松区别 JavaScript Event 对象中的offsetX, clientX, pageX, screenX, layerX, x等属性. 一.测试代码如下: & ...

随机推荐

  1. 关于什么是SpringMVC,和SpringMVC基于xml配置、注解配置、纯注解配置

    首先我们先要了解一下,什么是SpringMVC? SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC子框架,也就是说SpringMVC的相关包都 ...

  2. navicat for mysql 数据库备份与还原

    一, 首先设置, 备份保存路径 工具 -> 选项 点开 其他 -> 日志文件保存路径 二. 开始备份 备份分两种, 一种是以sql保存, 一种是保存为备份 SQL保存 右键点击你要备份的数 ...

  3. python_json序列化和反序列化

    序列化 import json dic = {'} print(json.dumps(dic)) 反序列化;json.loads() dic = {'} print(json.dumps(dic)) ...

  4. Java中try、finally语句中有return时的执行情况 [转]

    原文:http://kingj.iteye.com/blog/1436761 在Java中当try.finally语句中包含return语句时,执行情况到底是怎样的,finally中的代码是否执行,大 ...

  5. c# 结构的使用

    类的定义的是引用类型,重点在堆上创建,有的时候类只包含极少的数据,因为管理堆而造成的开销是很大的.这时候更好的做法就是将类型定义成结构.结构是值类型,在栈上存储,能有效的减小内存管理的开销.c#基元类 ...

  6. C++反射实现(转)

    参考了wxWidgets的相关代码,并进行简化,同时借鉴了网上的相关内容,改进之处在于,只需要继承基本类Object,在类的头文件中定义宏,DECLARE_CLASS(类名),在类的实现文件中定义宏, ...

  7. JavaScript eval

    JavaScript  eval JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值. // EvalError 执行字符串中的JavaScrip ...

  8. C#方法过滤器

    方法过滤器 使用Emit和注解属性Attribute实现 使用方式 1. 自定义方法过滤器 可分别定义方法执行前过滤器, 方法执行结束过滤器, 方法异常过滤器 执行前过滤器继承 ExecutingFi ...

  9. Springboot学习笔记(一)-线程池的简化及使用

    工作中经常涉及异步任务,通常是使用多线程技术,比如线程池ThreadPoolExecutor,它的执行规则如下: 在Springboot中对其进行了简化处理,只需要配置一个类型为java.util.c ...

  10. P4725 【模板】多项式对数函数

    思路 考虑对ln求导后处理 根据复合函数的求导法则\(g'(f(x))=g'(x)f'(x)\) 得到 \[ \ln F(x) '= \frac{F'(x)}{F(x)} \] 最后对这个式子积分 \ ...