標籤:
js事件對象座標---貼上代碼
<body style="position:relative;width:100%;height:100%;padding:15px;margin:20px;"> <div style="position:absolute;top:100px;left:100px;width:500px;height:500px;padding:5px;margin:9px;background:#ddd;" onclick="xy(event)"> </div></body>
/********************************* event.clientX、event.clientY 滑鼠相對於瀏覽器視窗可視地區的X,Y座標(視窗座標),可視地區不包括工具列和捲軸。IE事件和標準事件都定義了這2個屬性 event.pageX、event.pageY 類似於event.clientX、event.clientY,但它們使用的是文檔座標而非視窗座標。這2個屬性不是標準屬性,但得到了廣泛支援。IE事件中沒有這2個屬性。 event.offsetX、event.offsetY 滑鼠相對於事件來源元素(srcElement)的X,Y座標,只有IE事件有這2個屬性,標準事件沒有對應的屬性。(本地測試所有瀏覽器都有這個屬性) event.layerX, event.layerY 滑鼠相對於事件來源元素(srcElement)的X,Y座標,在Firefox下使用 event.screenX、event.screenY 滑鼠相對於使用者顯示器螢幕左上方的X,Y座標。標準事件和IE事件都定義了這2個屬性 *******************************/ function xy(event) { var event = event ? event : window.event; console.log("clientX:" + event.clientX + "," + "clientY:" + event.clientY); console.log("pageX:" + event.pageX + "," + "pageY:" + event.pageY); console.log("x:" + event.x + "," + "y:" + event.y); console.log("offsetX:" + event.offsetX + "," + "offsetY:" + event.offsetY); console.log("layerX:" + event.layerX + "," + "layerY:" + event.layerY); console.log("screenX:" + event.screenX + "," + "screenY:" + event.screenY); } /***************************** FF:clientX,pageX 相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left)註:x在FF中無效 Chrome:clientX,pageX,x 相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left) Opera:clientX,pageX,x 相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left) IE7:clientX相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left,有小小的偏差),pageX無效,clientX多了兩個像素,x比clientX小,基本上等於去掉margin個padding之後的值 IE8:clientX相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left,有小小的偏差),pageX無效,x比clientX小,基本上等於去掉margin個padding之後的值 IE9以上:clientX,pageX,x 相對於瀏覽器視窗可視地區(瀏覽器左邊加上自身的padding-left),x瀏覽器左邊加上自身的margin-left clientX全部瀏覽器支援,IE7,8有小小偏差 pageX IE7,8不支援 x FF不支援 IE8以下不支援offsetX屬性,其他都ok offsetX全部瀏覽器支援 screenX全部瀏覽器支援 *****************************/
參考文章 : http://blog.sina.com.cn/s/blog_780a94270101kdgo.html http://www.2cto.com/kf/201409/333401.html
js事件對象座標