event.offsetX in Firefox

后端 未结 11 1840
既然无缘
既然无缘 2020-11-27 16:45





        
11条回答
  •  醉话见心
    2020-11-27 17:11

    There's a bug in Musa's solution: think what happens if e.offsetX === 0 and e.layerX === undefined...

    var x = e.offsetX || e.layerX; // x is now undefined!
    

    A more robust version is as follows:

    var x = e.hasOwnProperty('offsetX') ? e.offsetX : e.layerX;
    var y = e.hasOwnProperty('offsetY') ? e.offsetY : e.layerY;
    

    Or, because we can assume that if offsetX is defined, offsetY will be too:

    var hasOffset = e.hasOwnProperty('offsetX'),
        x         = hasOffset ? e.offsetX : e.layerX,
        y         = hasOffset ? e.offsetY : e.layerY;
    

提交回复
热议问题