平时如果我们想要通过鼠标点击元素上的某个区域的时候,例如canvas中的某个点时,就需要计算具体的坐标点。鼠标事件提供了三组坐标,下面我们讲解一下它们之间的关系。
面这个页面中有两个iframe, 每个iframe 都有它自己的滚动条,我们点击右边frame 的红色文字,弹出的(clientx,clienty) 是 (10,27 ) 这个是相对右边iframe 的起始点的左边,这时的视口就是右边的iframe(红色框).
所以使用clientx,clienty 进行计算的时候需要考虑当前的视口是哪个,是否有嵌套关系,如果有嵌套关系,计算时需要考虑嵌套关系的影响。
pagex,pagey 也可以通过clientx,clienty 结合 scrollleft,scrolltop 获得
针对上面第一张图:
pagex = document.documentelement.scrollleft + clientx;
pagey = document.documentelement.scrolltop + clienty;
如果页面比较复杂,有多个可滚动容器,则对于active 的可滚动容器
pagex = scrollleft + clientx
pagey = scrolltop + clienty
其中,pagex,pagey,scrollleft,scrolltop,clientx,clienty 都是相对active可滚动容器的原点的坐标。
如对本文有疑问, 点击进行留言回复!!
清除新版Google Chrome浏览器中表单控件(input,button...)默认的黑色边框
荐 20200714——git/mac配置/项目运行步骤/一些报错
antd 菜单组件 使用时报错:Cannot read property ‘isRootMenu‘ of undefined
CSS|div的style=“background-image: url(img/a.bmp)图片显示不出来
硬件仪表盘账号建立指导(一) --WHQL认证测试结果提交账号(一)
cookie的规范Cookie的不可跨域名性或Cookie与域名的关系
网友评论