Quelle est la différence entre screenX
/ Y
, clientX
/ Y
et pageX
/ Y
?
Aussi pour iPad Safari, les calculs sont-ils similaires à ceux du bureau — OU il y a une différence à cause de la fenêtre d'affichage?
Ce serait formidable si vous pouviez me donner un exemple.
Réponses:
En JavaScript:
pageX
,pageY
,screenX
,screenY
,clientX
, EtclientY
renvoie un nombre qui indique le nombre de pixels « CSS » physique est un point à partir du point de référence. Le point d'événement est l'endroit où l'utilisateur a cliqué, le point de référence est un point en haut à gauche. Ces propriétés renvoient la distance horizontale et verticale de ce point de référence.pageX
etpageY
: parrapport au coin supérieur gauche de la zone de contenu entièrement rendue dans le navigateur. Ce point de référence se trouve sous la barre d'URL et le bouton de retour en haut à gauche. Ce point peut se trouver n'importe où dans la fenêtre du navigateur et peut en fait changer d'emplacement s'il y a des pages défilantes intégrées dans les pages et que l'utilisateur déplace une barre de défilement.
screenX
etscreenY
:Par rapport au coin supérieur gauche de l'écran / moniteur physique, ce point de référence ne se déplace que si vous augmentez ou diminuez le nombre de moniteurs ou la résolution du moniteur.
clientX
etclientY
: parrapport au bord supérieur gauche de la zone de contenu ( la fenêtre d'affichage ) de la fenêtre du navigateur. Ce point ne bouge pas même si l'utilisateur déplace une barre de défilement depuis le navigateur.
Pour un visuel sur quels navigateurs prennent en charge quelles propriétés:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
w3schools a un interprète et un éditeur Javascript en ligne pour que vous puissiez voir ce que chacun fait
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
la source
Voici une image expliquant la différence entre
pageY
etclientY
.Idem pour
pageX
etclientX
, respectivement.pageX/Y
les coordonnées sont relatives au coin supérieur gauche de toute la page rendue (y compris les parties masquées par défilement),tandis que les
clientX/Y
coordonnées sont relatives au coin supérieur gauche de la partie visible de la page, "vu" à travers la fenêtre du navigateur.Voir la démo
Vous n'aurez probablement jamais besoin
screenX/Y
la source
screenX/Y
est?pageX/pageY
doit être utilisé à la place declientX/clientY
?<html>
élément en pixels CSS.viewport
pixels CSS.screen
pixels de l'appareil.En ce qui concerne votre dernière question si les calculs sont similaires sur les navigateurs de bureau et mobiles ... Pour une meilleure compréhension - sur les navigateurs mobiles - nous devons différencier deux nouveaux concepts: la fenêtre de présentation et la fenêtre visuelle . La fenêtre d'affichage est la partie de la page actuellement affichée à l'écran. La fenêtre de présentation est synonyme d'une page complète rendue sur un navigateur de bureau (avec tous les éléments qui ne sont pas visibles dans la fenêtre actuelle).
Sur les navigateurs mobiles, les
pageX
etpageY
sont toujours relatifs à la page en pixels CSS afin que vous puissiez obtenir les coordonnées de la souris par rapport à la page du document. D'autre partclientX
etclientY
définir les coordonnées de la souris par rapport à la fenêtre visuelle .Il y a un autre thread stackoverflow ici concernant les différences entre la fenêtre de visualisation et la fenêtre de présentation: Différence entre la fenêtre de visualisation et la fenêtre de présentation?
Une autre bonne ressource: http://www.quirksmode.org/mobile/viewports2.html
la source
Ce qui m'a aidé, c'est d'ajouter un événement directement sur cette page et de cliquer pour moi! Ouvrez votre console dans les outils de développement / Firebug etc. et collez ceci:
Avec cet extrait, vous pouvez suivre la position de votre clic lorsque vous faites défiler, déplacez la fenêtre du navigateur, etc.
Notez que pageX / Y et clientX / Y sont les mêmes lorsque vous faites défiler vers le haut!
la source
La différence entre ceux-ci dépendra en grande partie du navigateur auquel vous vous référez actuellement. Chacun met en œuvre ces propriétés différemment, ou pas du tout. Quirksmode a une excellente documentation concernant les différences de navigateur en ce qui concerne les normes W3C comme les événements DOM et JavaScript.
la source