首頁 >web前端 >js教程 >JS取得滑鼠座標位置實例分析_javascript技巧

JS取得滑鼠座標位置實例分析_javascript技巧

WBOY
WBOY原創
2016-05-16 15:19:021227瀏覽

本文實例分析了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程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn