本文介绍了我们应该为layerX / layerY使用什么替代品,因为它们在webkit中已被弃用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在chrome canary中,不推荐使用layerX和layerY,但我们应该使用什么呢?
In chrome canary, layerX and layerY are deprecated, but what should we use instead ?
我找到了offsetX但它不适用于Firefox。所以为了在webkit上没有警告的情况下获得layerX,我已经这样做了:
I've find offsetX but it doesn't work with Firefox. So to get layerX without warning on webkit, I've done that :
var x = evt.offsetX || evt.layerX,
y = evt.offsetY || evt.layerY;
但这看起来相当复杂!我们应该怎么做才能让layerX在所有浏览器中运行?
But this seem quite complex ! Is that really what we should do to get layerX working in all browsers ?
推荐答案
这是一个从中计算layerX和layerY的函数点击事件:
Here is a function to calculate layerX and layerY from a click event:
function getOffset(evt) {
var el = evt.target,
x = 0,
y = 0;
while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
x += el.offsetLeft - el.scrollLeft;
y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
x = evt.clientX - x;
y = evt.clientY - y;
return { x: x, y: y };
}
非常感谢Stu Cox指出用于制作此功能的两个功能一个。
Thanks a lot to Stu Cox for pointing out the two functions used to make this one.
这篇关于我们应该为layerX / layerY使用什么替代品,因为它们在webkit中已被弃用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!