首頁 >web前端 >js教程 >Javascript事件與滑鼠座標的屬性

Javascript事件與滑鼠座標的屬性

一个新手
一个新手原創
2017-09-09 10:06:201827瀏覽

在平常的開發中,多多少少會遇到一些與滑鼠座標相關的需求。例如:在行動端的手勢判定、PC端的搖晃拖曳的窗體事件等。那麼你們是否都了解與之相關的Javascript的Event事件屬性呢?
    如當我們在點擊事件的時候,彈出目前的座標多少?首先我們要先弄清楚event.pageX、event.clientX及event.screenX之外,還要弄清楚其屬性的一些瀏覽器相容性問題;

在這之前,我們還要弄清楚事件event相容的問題:
1、如當我們在瀏覽器的預設事件的行為,第一個想到的肯定是event.preventDefault()
    2、如我們在阻止事件的冒泡的時候,我們會使用event.stopPropagation();
    3.當我們在取得事件的目標來源節點的時候,我們想到的是event.target;
但在IE瀏覽器,尤其是IE9以下的瀏覽器,以上都是具有相容性的問題,在這裡我們可以總結出EventUtil的物件來做一些跨瀏覽器的一些事件;

    var EventUtil = {
     addHandler: function (elment, type, handler) {
         if (element.addEventListener) {
              element.addEventListener(type, handler, false); 
          } else if (element.attachEvent) {
              element.attachEvent('on' + type, handler) 
          } else {
               element['on' + type] = handler;
          }
     },
     removeHandler: function(element, type, handler) {
         if (element.removeEventListener) {
               element.removeEventListener(type, handler, false);
          } else if (element.detachEvent) {
               element.detacheEvent('on' + type, handler); 
          } else {
              element['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 = false; 
          }
     },
};

在上述的跨瀏覽器事件處理完後,感覺這裡還沒有談到與標題相關的東西;
    首先:我們先弄清楚上述說的三個pageX、clientX、screenX的關係;

 1、pageX:是指鼠标的位置相当于web页面的具体坐标;
 2、clientX:是指鼠标的位置相对于浏览器窗口的具体坐标;
 3、screenX:则具体是指鼠标位置相对于系统窗口的具体坐标;

 其中,pageX可能会大于或等于clientX;可以用这个公式来计算:  
     pageX = clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
 具体的差别可自行脑补出来啦,哈哈。

以上是Javascript事件與滑鼠座標的屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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