本文實例分析了JS取得滑鼠座標位置的方法。分享給大家參考,具體如下:
取滑鼠座標位置有這些:滑鼠在視窗的座標位置(clientX,clientY),滑鼠在頁面的座標位置(pageX,pageY),滑鼠在螢幕的座標位置(screenX,screenY),其中滑鼠在視窗的座標位置(clientX,clientY),以及滑鼠在螢幕的座標位置(screenX,screenY)在所有的瀏覽器中都支持,但是滑鼠在頁面的座標位置(pageX,pageY)在IE8及更早版本不支持,但沒有關係,可以透過scrollLeft 和scrollTop可以計算出pageX,pageY的值。
首先是跨瀏覽器的事件物件
var EventUtil = { addHandler:function(elem,type,handler){ if(elem.addEventListener) { elem.addEventListener(type,handler,false); }else if(elem.attachEvent) { elem.attachEvent("on"+type,handler); }else { elem["on"+type]=handler; } }, removeHandler:function(elem,type,handler){ if(elem.removeEventListener) { elem.removeEventListener(type,handler,false); }else if(elem.detachEvent) { elem.detachEvent("on"+type,handler); }else { elem["on"+type]=null; } }, getEvent:function(event){ return event?event:window.event; }, getTarget:function(event){ return event.target||event.srcElement; }, preventDefault:function(event){ if(event,preventDefault){ event.preventDefault(); }else{ event.returnValue = false; } }, stopPropagation:function(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble=true; } } };
1.視口座標位置
var div = document.getElementById("myDiv"); EventUtil.addHandler(div,"click",function(event){ event = EventUtil.getEvent(event); alert("Client coordinages: "+event.clientX+","+event.clientY); });
2.螢幕座標位置
var div = document.getElementById("myDiv"); EventUtil.addHandler(div,"click",function(event){ event = EventUtil.getEvent(event); alert("Screen coordinates: "+event.screenX+","+event.screenY); });
3.頁面座標位置
var div = document.getElementById("myDiv"); EventUtil(div,"click",function(event){ event = EventUtil.getEvent(event); var pageX = event.pageX; var pageY = event.pageY; if(pageX==undefined) { pageX=event.clientX+document.body.scrollLeft||document.documentElement.scrollLeft; } if(pageY==undefined) { pageY = event.clientY+document.body.scrollTop||document.documentElement.scrollTop; } alert("Page coordinates: "+pageX+","+pageY); });
更多關於JavaScript滑鼠操作相關內容有興趣的讀者可查看本站專題:《JavaScript滑鼠操作技巧總結》
希望本文所述對大家JavaScript程式設計有所幫助。