DOM坐标系统

function eventCoord(e) {

var ev = e || event, d = document,

/**

document.compatMode

BackCompat:怪癖模式

CSS1Compat:标准模式

*/

scrollEL = /^b/i.test(d.compatMode) ? d.body : d.documentElement,//IE的兼容模式和标准模式


/*

坐标系统

event.offsetX|e.layerX

event.offsetY|e.layerY

是相对于e.srcElement坐标


e.clientX

e.clientY

相对于窗口(不包括窗口自身的控件和滚动条)


e.x|e.pageX

e.y|e.pageY

相对于父文档的x,y坐标


e.screenX

e.screenY

相对于用户屏幕的坐标

opera(offset,client,x,y,page)

chrome,safari(offset, layer, client, x,y, page)

firefox(layer,client,page,screen)

ie(offset,client,x,y, screen)

*/

sptPage = typeof ev.pageX == 'number',

sptLayer = typeof ev.layerX == 'number';


return {

pageX : sptPage ? ev.pageX : ev.clientX + scrollEL.scrollLeft,

pageY : sptPage ? ev.pageY : ev.clientY + scrollEL.scrollTop,

clientX : ev.clientX,

clientY : ev.clientY,

layerX : sptLayer ? ev.layerX : ev.offsetX,

layerY : sptLayer ? ev.layerY : ev.offsetY

};

}


你可能感兴趣的:(DOM坐标系统)