博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript 中 x offsetX clientX screenX pageX的区别
阅读量:6930 次
发布时间:2019-06-27

本文共 968 字,大约阅读时间需要 3 分钟。

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

其中offsetX, offsetY是指相对于触发事件元素的左上角的偏移。但在不同的浏览器中其值又有所不同。在chrome opera, safari中是指外边缘,即把该元素边框的宽度计算在内,firefox ie则不包含边框值。如下图(一个具有蓝色边框的div)所示。

layerX layerY

layerX layerY是相对于position为absolute或relative的父元素胡外边缘的距离。ie8及ie8之前的版本没有layerX或layerY值。

如下图:最外层是一个绿色边框的div,里面一层是一个红色边框的div, 最里面是一个蓝色边框的div, 在蓝色div上单击,则该事件的layerX与layerY相相对于最外层绿色外边缘的距离(中间红色的div的position设有被设置为absolute或relative, 所有不是相对该元素,反之则是相对于该元素)。

pageX, pageY, x, y, clientX, clientY

pageX, pageY是相对于文档窗口的左上角,x,y和clientX, clientY相同,其值是相对于可视窗口(浏览的可视区域)的左上角。如下图。

此时可视窗口与文档窗口重叠,pageX等于clientX, pageY等于clientY, 如果我们缩小浏览器窗口直到浏览器出现滚动条。此时可视窗口左上角位置不变,但文档窗口左上角位置发生的变化,如下图:

由此我们可以看出当浏览器没有滚动条时(可视窗口与文档窗口重合),pageX与clientX相等,pageX与clientY相等,如果出现下拉滚动条并向下拉动滚动条,文档窗口向上滚动,如果出现左右滑动的滚动条并向右拉动滚动条,文档窗口向左滚动,在文档窗口滚动的情况下,pageX>=clientX, pageY>=clientY, x = clientX, y = clientY。

原文地址:

转载于:https://www.cnblogs.com/joyco773/p/8729281.html

你可能感兴趣的文章
button 默认类型是submit
查看>>
RAID详解[RAID0/RAID1/RAID10/RAID5]
查看>>
Linux在终端和控制台下复制粘贴命令快捷键
查看>>
数据结构与算法(周鹏-未出版)-第六章 树-6.2 二叉树
查看>>
Elasticsearch学习笔记 一
查看>>
ORACLE环境变量定义
查看>>
深入理解 Java 垃圾回收机制
查看>>
洛谷P1439 最长公共子序列(LCS问题)
查看>>
新概念英语(1-93)Our new neighbour
查看>>
什么是分布式系统,如何学习分布式系统
查看>>
<转>大型分布式网站术语浅析
查看>>
Java多线程之并发协作生产者消费者设计模式
查看>>
35岁,人生的主题是“和解”,别再做拧巴的人
查看>>
一对多联表查询
查看>>
fedora26在编译s3c2440内核时make menuconfig *** Unable to find the ncurses libraries
查看>>
如何在win10上同时安装python2和python3
查看>>
vb.net小试三层架构
查看>>
HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)
查看>>
[置顶] 如何把你的笔记本电脑变成一个Wi-Fi路由器在Windows 7 & 8?
查看>>
leetcode_question_114 Flatten Binary Tree to Linked List
查看>>