Maison  >  Article  >  interface Web  >  Événements Javascript et propriétés des coordonnées de la souris

Événements Javascript et propriétés des coordonnées de la souris

一个新手
一个新手original
2017-09-09 10:06:201747parcourir

Dans un développement normal, vous rencontrerez plus ou moins certaines exigences liées aux coordonnées de la souris. Par exemple : détermination de gestes côté mobile, événements de fenêtre de tremblement et de glisser côté PC, etc. Alors, connaissez-vous tous les propriétés d'événement Event associées à Javascript ?
Par exemple, lorsque l’on clique sur l’événement, quelles sont les coordonnées actuelles qui apparaissent ? Tout d'abord, nous devons comprendre event.pageX, event.clientX et event.screenX, ainsi que certains problèmes de compatibilité des navigateurs avec leurs propriétés

Avant cela, nous devons également comprendre les problèmes de compatibilité des événements ; :
1. Lorsque nous examinons le comportement des événements par défaut du navigateur, la première chose qui nous vient à l'esprit est définitivement event.preventDefault()
. 2. Si nous empêchons la propagation d'événements, nous utiliserons event.stopPropagation(); 3. Lorsque nous obtenons le nœud source cible de l'événement, nous pensons à event.target
; Cependant, dans les navigateurs IE, en particulier les navigateurs inférieurs à IE9, les problèmes de compatibilité ci-dessus peuvent être résumés ici.

    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; 
          }
     },
};
Après le traitement des événements entre navigateurs ci-dessus ; on a l'impression qu'il n'y a encore rien à voir avec le titre

Premièrement : nous devons d'abord comprendre la relation entre les trois pageX, clientX et screenX mentionnés ci-dessus

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn