js兼容问题,鼠标相对于事件源的位置,offsetX,layerX
来源:互联网 发布:中异软件切割 编辑:程序博客网 时间:2024/05/29 08:39
前几天在工作中遇见一个问题。就是要判断鼠标点击后 相对于事件源(event.target)的位置。
当然可以用event.offsetX,event.offsetY,来获取到。 但是到了FF里面就挂了。 event.layerX 也不获取不到。
干脆就自己写了个方法,
function getOffsetXY(evt) { if (evt.offsetX && evt.offsetY) return {x: evt.offsetX, y: evt.offsetY}; var ele = evt.target || evt.srcElement; var o = ele; var x = 0; var y = 0; while (o.offsetParent) { x += o.offsetLeft; y += o.offsetTop; o = o.offsetParent; } // 处理当元素处于滚动之后的情况 var left = 0; var top = 0 while (ele.parentNode) { left += ele.scrollLeft; top += ele.scrollTop; ele = ele.parentNode; } return {x: evt.pageX + left - x, y: evt.pageY + top - y};}用法:
var _x = getOffsetXY(event).x, _y = getOffsetXY(event).y;
0 0
- js兼容问题,鼠标相对于事件源的位置,offsetX,layerX
- js鼠标事件中的clientX/clientY,screenX/screenY,pageX/pageY,offsetX/offsetY,layerX/layerY,x/y
- JavaScript中鼠标event的位置(clientX,layerX,x,offsetX等)
- JavaScript中鼠标event的位置(clientX,layerX,x,offsetX等)
- js事件对象Event获取pageX,clientX,screenX,offsetX,layerX的方式与区别
- 各个浏览器中鼠标位置的属性 offsetX layerX PageX clientX (自由拖动框,防止文字选中)
- JS 里 PageX, ClientX, OffsetX, LayerX 的 区 别
- js实现鼠标点击获取相对于整个页面的位置
- js计算鼠标当前相对于某个元素的位置
- javascript获取鼠标相对于window的位置
- pageX,clientX,offsetX,layerX的那些事
- pageX,clientX,offsetX,layerX的那些事
- pageX,clientX,offsetX,layerX的那些事
- pageX,clientX,offsetX,layerX的区别
- pageX,clientX,offsetX,layerX的那些事
- pageX,clientX,offsetX,layerX的区别
- pageX,clientX,offsetX,layerX的区别
- pageX,clientX,offsetX,layerX的区别
- HTTP GET POST本质区别详解
- BDC: CALL TRANSACTION USING参数详解
- 关于java.lang.IllegalStateException异常
- Android使用百度地图SDK调用百度地图"java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform."
- 将字符串转成十六进制
- js兼容问题,鼠标相对于事件源的位置,offsetX,layerX
- Storm数据流模型的分析及讨论
- 知情人称刘迎霞涉嫌行贿犯罪 被调查时已外逃
- cache blocking 效果显示
- 压缩映射:简单最邻近搜索 -SLH
- ios uiwebview 长按图片,保存到本地相册
- SharePoint 2013 代码创建应用程序目录(App Catalog)
- POJ 2387 Til the Cows Come Home
- WePopp - 聚会,哪有那么难