寫過代碼的通常都知道,在頁面操做中,座標概念是一個很重要的概念,幾乎全部的頁面交互都牽扯到座標的概念。尤爲是在遊戲中, 座標概念更是製做遊戲的最基本概念之中,不瞭解或者不清楚座標概念,那麼辛辛苦苦作的遊戲可能淪爲一個動畫。對於在寫js的時候,清晰地瞭解並能區分座標概念是一件很重要的事,尤爲是在js事件中的多種座標。下面咱們舉個例子來了解一下:前端
如圖所示,咱們監聽點擊testDiv與點擊文檔的事件,咱們能夠在控制檯觀察輸出的event信息。chrome
在chrome瀏覽器下,所打印出的event信息中至少有6中關於座標的信息,下面咱們就仔細來談談各個座標信息的含義以及應用場合,作一個完整的位置信息文檔~canvas
來,咱們用幾張圖來形象的標示這些座標所表明的位置信息:瀏覽器
然而並非全部瀏覽器都能提供全部座標信息,例如x、y的概念在FireFox中是沒有的。下圖中說明了各類瀏覽器對於不一樣座標信息的兼容狀況,咱們在選用座標的時候不單單要選用正確的座標,還要考慮在不一樣瀏覽器下的兼容。dom
好了,對事件座標的概念解釋到這,相信你們都已經理解了,下面咱們來說講js中的元素座標。動畫
元素座標spa
style
document.getElementById('id').style.width=value
document.getElementById('id').style.height=value
document.getElementById('id').style.top=value
document.getElementById('id').style.left=valueblog
在js中,咱們能夠經過style去設置元素的位置以及寬高信息。值得注意的是,在IE瀏覽器中,咱們設置值得時候,value能夠爲數字,如
document.getElementById('id').style.left=100
可是在其餘瀏覽器中,value的值必須爲字符串,如
document.getElementById('id').style.left=「100px」
offset
value=document.getElementById('id').offsetLeft
value=document.getElementById('id').offsetTop
value=document.getElementById('id').offsetWidth
value=document.getElementById('id').offsetHeight遊戲
既然能夠在js中設值,咱們一樣也能夠在js中取值。咱們能夠經過offset獲取到元素相對於文檔的位置信息。元素信息還有不少,小編在這就不一一介紹了,同窗們有興趣本身去了解一下。事件
事件座標與元素座標聯用
在瞭解了事件座標與元素座標以後,咱們就能夠作一些精準的頁面間的交互了。用過canvas的同窗們都知道,canvas是h5強大的新元素之一,是有但願取代flash的存在,很多網頁都採用canvas去作好玩的遊戲。可是canvas有一點不是很好,canvas內部所繪製的圖形是沒有元素概念的,也就是說咱們沒法經過監聽canvas內部元素來作到交互。可是,咱們能夠經過精確的座標轉換來達到咱們想要的效果。如今咱們來作一個點擊canvas中矩形而後頁面中彈出hello的效果:
哈哈,這就是最簡單的一個頁面交互了不是嘛?配合canvas能夠獲得許多炫酷的效果噢~canvas的出現讓前端在動畫方面有了十分明顯的改善,這也是我十分鐘愛canvas的緣由之一~順便給你們推薦兩個canvas庫,fabric.js以及konva.js。你,值得擁有~好了,本期位置座標概念介紹到這裏,同窗們下課!下期再見~