引言:在使用canvas獲取座標的時候,不一樣瀏覽器處理是不一樣的html
getPosition (ev) { let x, y if (ev.layerX || ev.layerX === 0) { x = ev.layerX y = ev.layerY } else if (ev.offsetX || ev.offsetX === 0) { x = ev.offsetX y = ev.offsetY } return {x: x, y: y} }
以上代碼是獲取點擊座標的,除了IE6,7,8之外都是可用的,canvas
火狐瀏覽器用layerX和layerY來替代offsetX和offsetY瀏覽器
layerX/Y獲取到的是觸發點相對被觸發dom左上角的距離,數值與offsetX/Y相同,這個變量就是firefox用來替代offsetX/Y的,基準點爲邊框左上角,可是有個條件就是,被觸發的dom須要設置爲position:relative或者position:absolute,不然會返回相對html文檔區域左上角的距離dom
兼容性:IE6/7/8不支持,opera不支持,IE9/10和Chrome、Safari均支持spa
注意:使用layerX和layerY的時候,必定要將觸發的dom設置定位,要否則,座標是會跑偏的firefox