js取滑鼠座標位置__js

來源:互聯網
上載者:User
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);});

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.