screenX/Y, clientX/Y和pageX/Y之间有什么区别?
同样,对于iPad Safari,计算是否与桌面相似-或者因为视口而有一些不同?
如果你能给我举个例子就太好了。
screenX/Y, clientX/Y和pageX/Y之间有什么区别?
同样,对于iPad Safari,计算是否与桌面相似-或者因为视口而有一些不同?
如果你能给我举个例子就太好了。
当前回答
我不喜欢也不理解那些可以用语言直观地解释的东西。
其他回答
两者之间的差异很大程度上取决于您当前引用的浏览器。每个程序都以不同的方式实现这些属性,或者根本不实现。Quirksmode提供了大量关于浏览器与W3C标准(如DOM和JavaScript Events)差异的文档。
帮助我的是直接在这个页面上添加一个事件,然后自己点击!在开发人员工具/Firebug等中打开控制台,粘贴以下内容:
文档。addEventListener('点击',函数(e) { console.log ( 'page: ' + e.pageX + ',' + e.pageY, ' '客户端:' + e.clientX + ',' + e.clientY, ' 'screen: ' + e.screenX + ',' + e.screenY ') },假); 点击任何地方
使用这个代码片段,您可以在滚动、移动浏览器窗口等过程中跟踪您的单击位置。
请注意,当您一直滚动到顶部时,pageX/Y和clientX/Y是相同的!
clientX/Y指的是相对屏幕坐标,例如,如果你的网页足够长,那么clientX/Y给出了点击点的坐标位置,根据其实际像素位置,而ScreenX/Y给出了参考页面开始的纵坐标。
我不喜欢也不理解那些可以用语言直观地解释的东西。
与offsetX/Y的比较
其他有趣的属性是offsetX/Y(鼠标与所单击元素/节点的边界之间的偏移量)。以下是更全面的情况:
源