JavaScript中几种获取鼠标点击坐标位置的方法
2016-10-26 19:36
691 查看
转载请注明地址:http://blog.csdn.net/qq_27278957/article/details/52937488
最近在做Canvas画图的功能,发现Canvas在不同的设备上、不同的相对位置,获取的点击鼠标位置不一样,所以查找资料找了如下几种方法:1:获取鼠标在canvas上的点击位置
canvas.onmousedown = function(evt) { evt = window.event || evt; //获取canvas相对于浏览器圆点的坐标 var rect = canvas.getBoundingClientRect(); //获取圆心的位置 //获取鼠标在canvas上的位置 arcX = (evt.pageX - rect.left) * (canvas.width / rect.width); arcY = (evt.pageY - rect.top) * (canvas.height / rect.height); }
2:获取鼠标相对于屏幕的点击位置
screenX、screenY分别表示获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不同的浏览器表现出来的还算一致
canvas.onmousedown = function(evt) { evt = window.event || evt; //获取圆心的位置 //获取鼠标相对于屏幕的位置 arcX = evt.screenX; arcY = evt.screenY; }
3:获取鼠标相对于浏览器窗口的点击位置
clientX、clientY分别表示获取的是点击位置相对于浏览器窗口的左边距与上边距
canvas.onmousedown = function(evt) { evt = window.event || evt; //获取圆心的位置 //获取鼠标相对于浏览器窗口的位置 arcX = evt.clientX; arcY = evt.clientY; }
4:获取鼠标相对于文档的点击位置
clientX、clientY忽略了页面滚动因素,如果考虑页面滚动,也就是相对于文档(body元素)的坐标,加上滚动的位移就可以了。
Firefox下支持pageX、pageY属性,这两个属性已经把页面滚动包括在内了, chrome下 通过document.body.scrollLeft和document.body.scrollTop来计算页面滚动位移,IE下通过document.documentElement.scrollLeft和document.documentElement.scrollTop来计算页面滚动位移。
canvas.onmousedown = function(evt) { evt = window.event || evt; var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollY = document.documentElement.scrollTop || document.body.scrollTop; //获取圆心的位置 //获取鼠标相对于文档的位置 arcX = evt.pageX || evt.clientX+scrollX; arcY = evt.pageY || evt.clientY+scrollY; }
相关文章推荐
- 基于JavaScript实现 获取鼠标点击位置坐标的方法
- 基于JavaScript实现 获取鼠标点击位置坐标的方法
- 基于JavaScript实现 获取鼠标点击位置坐标的方法
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- MFC 获取picture控件的鼠标点击坐标位置的方法
- JavaScript 获取鼠标点击位置坐标
- [JavaScript]获取鼠标点击区域的相对、绝对位置坐标
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- MFC 获取picture控件的鼠标点击坐标位置的方法(PreTranslateMessag)
- 转 JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- JavaScript 获取鼠标点击位置坐标
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法
- javascript获取当前鼠标坐标的方法
- 获取鼠标当前位置坐标的方法 - 回复 "ps8.0" 同学