canvas獲取瀏覽器座標(vue項目demo,其他是同樣的)

引言:在使用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

相關文章
相關標籤/搜索