Mryqu's Notes


  • 首页

  • 搜索
close

[JS] 鼠标点的screenX/Y、clientX/Y、pageX/Y和offsetX/Y

时间: 2018-01-09   |   分类: FrontEnd     |   阅读: 36 字 ~1分钟

理解

  • clientX/Y:鼠标点相对浏览器窗口内容区域(viewport)左上角的偏移量。
    桌面浏览器基本支持,移动浏览器有可能不支持。
  • pageX/Y:鼠标点相对浏览器所有渲染内容区域(viewport)左上角的偏移量。(滚动后,文档左上角有可能不在浏览器窗口中,仍旧从文档左上角算起)
    MousePoint 桌面浏览器基本支持,移动浏览器有可能不支持。
  • screenX/Y:鼠标点相对物理显示器左上角的偏移量。
    当浏览器换了位置或屏幕分辨率改了,即使clientX/Y不变,screenX/Y值都有可能变动。
    桌面和移动浏览器都基本支持。
  • offsetX/offsetY:鼠标点相对事件目标左上角的偏移量。
    实验性质技术,桌面浏览器基本支持,移动浏览器有可能不支持。

代码示例

MousePoint Code

测试

MousePoint Test 做了两次测试:第一次测试没有滚动浏览器,第二次测试滚动了浏览器。
两次点击的clientY都是22;
两次点击的screenY都是225;
两次点击的pageY分别是22和428(整个文档渲染区域左上角滚动后没有出现在浏览器内);
两次点击的offsetY分别是6和413(段落渲染区域左上角滚动后没有出现在浏览器内)。

参考


What is the difference between screenX/Y, clientX/Y and pageX/Y?
getMousePosition.js
MDN: MouseEvent.screenX
MDN: MouseEvent.clientX
MDN: MouseEvent.pageX
MDN: MouseEvent.offsetX

标题:[JS] 鼠标点的screenX/Y、clientX/Y、pageX/Y和offsetX/Y
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#javascript# #mousepoint# #screen# #client# #page#
[JS] 通过升级npm解决了error TS2322和TS2307
[OpenUI5] Theme加载
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
    • 理解
    • 代码示例
    • 测试
    • 参考
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%