←back to thread

293 points ulrischa | 1 comments | | HN request time: 0.209s | source
Show context
duxup ◴[] No.42174148[source]
Why are screenX and screenY relevant here as far as their code goes?

Where they using those values in their code?

Very interesting article but I'm missing the step where it would impact their code ...

replies(1): >>42174292 #
t43562 ◴[] No.42174292[source]
...because when they are 0 one can infer that the event came from a keypress rather than a mouse. They want to know this.
replies(3): >>42174436 #>>42174868 #>>42175013 #
1. G1N ◴[] No.42174868[source]
Based on the other replies here it seems like it's to differentiate taps vs mouse clicks, keyboard events in js don't have a screenX or screenY property (you can run this in your browser console on this HN post to confirm):

  (() => {
    const logEvent = event => console.log({
      coords: [event.screenX, event.screenY],
      type: event.type
    });
    const input = document.querySelector("textarea");
    // use "keydown" instead of "keypress" to detect all keyboard input instead of just character producing input 
    input.addEventListener("keydown", logEvent);
    input.addEventListener("click", logEvent);
  })();
Type in or click on the reply text input and you'll see that the coords array is undefined for all keyboard events. I haven't tried this equivalent on a touch device however, so not sure how it's handled there.