clientX、offsetX相对于鼠标事件对象,需要触发鼠标事件才会有clientX、offsetX。

clientX:当事件被触发时鼠标指针相对于窗口左边界的水平坐标,参照点为浏览器内容区域的左上角,该参照点会随之滚动条的移动而移动。

offsetX:当事件被触发时鼠标指针相对于所触发的标签元素的左内边框的水平坐标。

screenX:鼠标位置相对于用户屏幕水平偏移量,此时的参照点也就是原点是屏幕的左上角。

pageX:参照点是页面本身的body原点,而不是浏览器内容区域左上角,它计算的值不会随着滚动条而变动,它在计算时其实是以body左上角原点(即页面本身的左上角,而不是浏览器可见区域的左上角)为参考点计算的,这个相当于已经把滚动条滚过的高或宽计算在内了,所以无论滚动条是否滚动,他都是一样的距离值。

可以自己写一下代码试验一下,自行加入其他元素

<!DOCTYPE html>
<html lang="en"><head><title>Mancuoj</title>
</head><body><p>移动鼠标看看:</p><p id="screen-log"></p><script>let screenLog = document.querySelector('#screen-log');document.addEventListener('mousemove', logKey);function logKey(e) {screenLog.innerText = `Screen X/Y: ${e.screenX}, ${e.screenY}Client X/Y: ${e.clientX}, ${e.clientY}Offset X/Y: ${e.offsetX}, ${e.offsetY}Page X/Y: ${e.pageX}, ${e.pageY}`;}</script>
</body></html>

浅谈clientX、offsetX、screenX、pageX相关推荐

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

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

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

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

  3. clientX,offsetX,pageX,screenX的异同以Chrome浏览器测试

    clientX,offsetX,pageX,screenX的异同 对于这个问题我相信有不少刚刚学习DOM事件的小伙伴可能会比较懵逼,首先我们从文字上解释它的异同 首先我们要明确对于浏览器而言,它的X还 ...

  4. js 事件回调函数的对象属性说明:clientX、screenX、offsetX、pageX

    clientX 鼠标相对于浏览器左上角x轴的坐标: 不随滚动条滚动而改变: clientY 鼠标相对于浏览器左上角y轴的坐标: 不随滚动条滚动而改变: pageX 鼠标相对于浏览器左上角x轴的坐标: ...

  5. 2022-03-27 screenX和clientX的区别以及offsetX和pageX的区别

    1.screenX和clientX的区别 screenX是电脑显示器原点(显示器左上角)到鼠标点击位置的距离 clientX是可视化窗口原点(网页左上角)到鼠标点击位置的距离 2.offsetX和pa ...

  6. clientX,screenX,pageX,offsetX的区别

    前言 关于clientX,screenX,pageX,offsetX的区别之前也比较迷糊,然后自己写了几个demo算是弄明白了,在这记录一下. 定义 一.clientX.clientY 点击位置距离当 ...

  7. 研究MouseEvent中的clientX、offsetX、pageX、screenX

    很多时候需要在鼠标点击的时候获取点击的坐标来处理一些逻辑,有时候clientX.offsetX.pageX用的也不清楚,特此做了一个实验来记录. 1.含义 clientX 提供应用程序客户区域内发生事 ...

  8. javascript 中 x offsetX clientX screenX pageX的区别

    在javascript的事件对象中的关于事件鼠标位置的几个属性(x, pageX, offsetX, scrrenX clientX)及(y, pageY, offsetY, screenY, cli ...

  9. pageX,clientX,offsetX,layerX的区别

    在各个浏览器的JS中,有很多个让你十分囧的属性,由于各大厂商对标准的解释和执行不一样,导致十分混乱,也让我们这些前端攻城狮十分无语和纠结>_< John Resig大神说过,动态元素有3个 ...

最新文章

  1. php定时刷新token,PHP 定时任务获取微信access_token的简单示例
  2. 详解Batch Normalization及其反向传播
  3. 17.Java5的Exchanger同步工具
  4. html5如何掷色子,html5 canvas掷骰子(简单,学习基础canvas)
  5. 《LeetCode力扣练习》第6题 C语言版 (做出来就行,别问我效率。。。。)
  6. Timer的缺陷 用ScheduledExecutorService替代
  7. Linux防火墙命令
  8. IE兼容模式下 SCRIPT1028: 缺少标识符、字符串或数字
  9. isotope == parallax 例子
  10. pymysql的安装
  11. svn 403 Forbidden
  12. 用jetty起maven工程debug报source not found
  13. WINCE6内核编译问题汇总
  14. spring-第十六篇之AOP面向切面编程之Spring AOP
  15. oracle 表空间达到32g,oracle表空间到32G后扩容
  16. 高德地图引入热力图插件失败
  17. 大话深度信念网络(DBN)
  18. 联想 ThinkPadE480无法调节亮度
  19. HTML5 基础练习题总结(一)
  20. 小米MIUI手机adb连接教程

热门文章

  1. 概率 (菜鸡 dalao轻喷
  2. 栋的周评 | 第二回合(定期更新、动态、架构、云技术、后端、前端、收听/收看、英文、哲学、书籍、影视、好歌、新奇)
  3. 呼呼呼呼呼呼呼呼呼好
  4. iOS APP版本自动更新
  5. 如何让随机出现的列表元素只出现一次 python——求解
  6. 将Clound compare以及一些mathLab 等源码,集成到我们vs上来并编译
  7. 华为云数据库三大优势
  8. 把音频中的某个人声去掉_怎样去掉音频中的背景音乐 只保留人声?
  9. 双向迭代器实现对该商品名称数组的双向(向前和向后)遍历。
  10. 深度学习之学习(1-2)感受野(receptive field)