Learn JavaScript Touch Events In 17 Minutes

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 155

  • @SamFishback
    @SamFishback 2 года назад +17

    Thank god for you. A clear, concise crash course on touch events. I have been scouring the internet only to find documentations and outdated stackoverflows. This was exactly what I needed.

    • @scienceblossom6197
      @scienceblossom6197 2 года назад +1

      I agree, thanks God he's such an amazing teacher! 👌👌👌

  • @diegolopez9851
    @diegolopez9851 2 года назад +15

    You are uploading all the videos I'm needing this week 🤯🤯

  • @tuhinkarmakar3882
    @tuhinkarmakar3882 2 года назад +24

    This literally answered a ton of doubt that I usually had while building some touch based stuffs. Thanks a ton @Kyle :)

  • @StellarWeb008
    @StellarWeb008 2 года назад +6

    He's the best teacher I have every seen
    And from now on he is my favourite youtuber also

  • @AlekVila
    @AlekVila 4 месяца назад

    This was a beautiful gem! Thank you!

  • @FxWitch
    @FxWitch 9 месяцев назад

    Absolute game changer, this saved me tons of time researching these things as a noobie

  • @SiddheshNan
    @SiddheshNan 2 года назад +15

    Hey Kyle great video as always! Btw I noticed one thing that the about Phone menu is actually leaking your phone number & imei at 4:19 Please add some blur or box to hide it. Thanks.

  • @skies_codes
    @skies_codes 5 месяцев назад

    Exactly what I wanted right now 🤗🤗😍😍 This is why I love web dev simplified so much.

  • @Paninicus
    @Paninicus 2 года назад +3

    yet another high value video. Thanks Kyle. A similar video about debugging on iOS would be awesome. Because remember, Safari is the new IE...

    • @Weagle1337
      @Weagle1337 2 года назад

      Just install another browser...

    • @Paninicus
      @Paninicus 2 года назад

      @@Weagle1337 sure, I'll tell my 12k users

  • @emyralunthomas
    @emyralunthomas 8 месяцев назад

    Really clear and to the point explanation - great work

  • @one2oblivion
    @one2oblivion 4 месяца назад

    Thank you so much for this. It was a great intro.

  • @atroyo6504
    @atroyo6504 9 месяцев назад

    Damn, this is like a bite-sized course. Pretty concise without sacrificing details.

  • @kenkinyua7036
    @kenkinyua7036 2 года назад

    this is really my favorite channel . Thanks

  • @LexiumHub
    @LexiumHub 2 года назад

    How I love watching your videos immediately released 😫

  • @MuhammadAhmedAshraf
    @MuhammadAhmedAshraf 2 года назад +6

    can you make a video about paper ripple animation when there is not internet youtube have a retry button and when you long press on it the animation goes slow and stays there as long as you click there i am struggling to find this kind of animation that youtube has

  • @tigersmith12
    @tigersmith12 2 года назад

    W wat a great guide W you not only gave great real world use case scenarios but you also show a fast and simple way to debug any and all examples. There has been times where I followed a guide and ran into a bug that wasn't explain in the demonstration and couldn't figure out how to properly debug it. Ppl would pay crazy amounts of money to get half of this effort and quality at a college. One more W for good measure. P.S. I don't even web dev but love it when I see a good and clear guide.

  • @ronny332
    @ronny332 2 года назад +1

    Nice introduction to topic, I never came across until now. Thank you 🙂!

  • @alessandroformica6824
    @alessandroformica6824 2 года назад

    Another cool video from Kyle. Thank you, Mister!

  • @smoothbeak
    @smoothbeak 2 года назад +1

    Wow, touch events are quite interesting, and fairly simple to work with really :) Great video

  • @politubeyou
    @politubeyou Год назад

    Great explaination in such a short time. Thank you!

  • @felipefregginrules
    @felipefregginrules Год назад

    This is super! Thanks so much Kyle!

  • @AndyRocket1000
    @AndyRocket1000 Год назад

    Great job kyle👏👏👏

  • @sivakarthikeyan2516
    @sivakarthikeyan2516 2 года назад

    Thankyou man, you made me happy. 🙂

  • @matteoporrani4271
    @matteoporrani4271 2 года назад +1

    Great video, simple and clear, thanks a lot!

  • @riyaanfarhaan754
    @riyaanfarhaan754 2 года назад

    Oh, thank you kyle. Just saved me from going on searching about touch events. Once again thank you.

  • @Kawabolole
    @Kawabolole 2 года назад +2

    awesome and super useful, thanks!

  • @squarerootof2
    @squarerootof2 2 года назад +4

    This touches me deeply!!

  • @sohastar1985
    @sohastar1985 2 года назад +15

    Perfect this time more clear 👍 i like kyle videos cause its clear without extra information . But some times he is too fast on talking like eminem😂 . ✌️Thak you for share your information kyle🤗

    • @nathanyang3288
      @nathanyang3288 2 года назад +3

      Keminem😂

    • @phil2of3
      @phil2of3 2 года назад +1

      One could say it's... simplified.

  • @AnkitTiwari-dq7qm
    @AnkitTiwari-dq7qm 2 года назад

    Awesome Video 🔥

  • @addictedSK
    @addictedSK 2 года назад +1

    i was just working on something for mobile browser the other day and I've used on click everywhere! got to learn a lot from this.... can you please do tutorial for holding down plus minus button to gradually speed up number? Thanks

  • @MrSantirangel
    @MrSantirangel 2 года назад

    Great Video!!

  • @mr.jitruxa8103
    @mr.jitruxa8103 Год назад

    thank you for this video, it helped me a lot!

  • @sasi_smr
    @sasi_smr 2 года назад

    Amazing!! You are awesome!!! ❤️

  • @saifsaeed1158
    @saifsaeed1158 2 года назад

    well done my man , thanks alot

  • @MaxMov-sp8hr
    @MaxMov-sp8hr 2 года назад

    Hello! Until 7:00 everything is fine. I press the button and further "it is not possible to get access to a site". Need help please.

    • @MaxMov-sp8hr
      @MaxMov-sp8hr 2 года назад

      I'm looking at it and it's working! Children's illnesses go away on their own ...

  • @davidrobot7818
    @davidrobot7818 2 года назад

    Great tutorial. Thanks.

  • @reyzKhight
    @reyzKhight 2 года назад +3

    This is what I'm looking for

  • @pouriyanourouznejad7090
    @pouriyanourouznejad7090 2 года назад +1

    Ur the best 💜
    Can u pls teach us this 16:34 part with some examples?
    How to detect touchmove on swipe up/down/left/right ?
    For example, if I swipe up, then... (something happen)
    Need help to detect these moves 😅

    • @Italiafani
      @Italiafani 2 года назад +1

      You could detect the direction by storing the `pageY` and `pageX` properties of the `Touch`es into variables and then comparing them to the updated values on later events. If previous X is less than current X, the touch is moving to the right etc. I can't be arsed to try this out, so I'm not sure if this works as is, but here's what I'd start with:
      const logDirection () => {
      // scope these variables so we can use this on different targets
      let prevX, prevY
      return (event) => {
      const { pageX, pageY } = event.changedTouches[0]
      if (prevX < pageX) console.log('right')
      else if (prevX > pageX) console.log('left')
      if (prevY < pageY) console.log('down')
      else if (prevY > pageY) console.log('up')
      prevX = pageX
      prevY = pageY
      }
      }
      document.addEventListener('touchmove', logDirection())

    • @pouriyanourouznejad7090
      @pouriyanourouznejad7090 2 года назад

      @@Italiafani omg that sounds complicated, but thank you, I will try it 😅

  • @anonlegion9096
    @anonlegion9096 2 года назад

    6:30 I've been developing for a little over a year now and this just blew my mind

  • @EugenKondratiev
    @EugenKondratiev 2 года назад

    Thanks a lot Kyle. extremely useful and interesting topic and video.👍

  • @chrismuller2780
    @chrismuller2780 Год назад

    @14:41, Could you have used stopPropagation() in your event handlers instead of preventDefault() in addEventListener()?

  • @dclxviclan
    @dclxviclan 2 года назад

    Awesome bro, thanks for that lesson, u help me, this good lesson👍

  • @dailymeow3283
    @dailymeow3283 2 года назад +3

    09:35 even if i put 3 fingers at once ... omg he's a cat 🐾🐈

  • @QwDragon
    @QwDragon 2 года назад

    Very cool! Thanks!

  • @Dipenparmar12
    @Dipenparmar12 Год назад

    Amazing tutorial

  • @dustinscroggins6256
    @dustinscroggins6256 2 года назад

    Perfect video bro

  • @Aalii6
    @Aalii6 2 года назад

    interesting topic, thank you!

  • @fractallabor
    @fractallabor 2 года назад +4

    Why do you have semicolons before each .forEach calls? 17:28
    Edit: it was added magically at 9:25 by vscode I think 😆

    • @paoloose
      @paoloose 2 года назад

      It's not needed there, but when you have a line that starts with brackets or parentheses, you must use semicolons at the start or in the previous line because otherwise the interpreter will think that line is a continuation of the previous line

  • @andrillaf
    @andrillaf 2 года назад

    Ha! You read my mind. I was just struggling with this!

  • @JimRooney
    @JimRooney 2 года назад

    Top shelf 👍🏻

  • @repenning1
    @repenning1 2 года назад +6

    Kyle, have you considered pointer events? Would be simple to change your code to make pointer events work, but they would have the advantage of working for touch and mouse at the same time. There is no touch array with pointer event but you don't need that. As you could see the simultaneous touch is nearly impossible anyway. Pointer events are, I think, simpler to implement.

    • @4541047
      @4541047 2 года назад +1

      Indeed, this is the right and correct comment for this video...

    • @ellieyen3359
      @ellieyen3359 2 года назад +4

      According to MDN, the pointer event seems to have better browser compatibility (for non experimental properties). Also, the pointer event has more capability to handle things such as pressure and tiltX for pen devices.

    • @anonlegion9096
      @anonlegion9096 2 года назад

      interesting.... gonna read more into this

    • @alwaysasq7797
      @alwaysasq7797 2 года назад

      I was considering just click for my (soon to be available) explainer video on programming drag and drop. Then I considered adding touch based on this great video by Kyle - just been testing using pointer events - both in one event! Tested in mobile chrome and edge.

    • @indoom
      @indoom 2 года назад

      and pointer event has setPointerCapture/releasePointerCapture. Really helpful when dragging stuff around

  • @shahabdev2520
    @shahabdev2520 2 года назад

    super cool man. super cool. gracias

  • @mrmike81818
    @mrmike81818 2 года назад

    Thanks for sharing your mad skills... impressive.

  • @CirTap
    @CirTap 2 года назад

    You can also do remote USB debugging in desktop Firefox and connect its DevTool to your Android Firefox instance. Both need to be the same version iirc.
    On desktop goto about:debugging to enable the feature.

  • @gopalloharnew5948
    @gopalloharnew5948 2 года назад +1

    It's Ammazing !

  • @CirTap
    @CirTap 2 года назад +1

    What about Laptops and Pen / Graphics Tablets? and how do *PointerEvents* fit into the picture?
    Tablets are connected to PC-ish devices (Laptops) and many come with support for pinch and zoom => multi touch points.
    Aren't PointerEvents supposed to be the clicky-touchy "meta" event that cover both touch and click?
    As a (Wacom) pen tablet user that also uses the pen/stylus as a mouse replacement, I always run into issues on web pages that use *drag* events like maps (Google, Apple).
    Several panels in Firefox DevTools also do not respond properly when I try to resize them using the pen.
    It's only web stuff that has this issue. Desktop apps respond perfectly fine to the pen-as-mouse use case.

  • @0VexRoblox
    @0VexRoblox 2 года назад +1

    Very touching

  • @jingsuantan2304
    @jingsuantan2304 2 года назад

    wanba ask if touch event can set to lock control on resize resolutions of the screen also? 🔒

  • @CiroPeixoto
    @CiroPeixoto 2 года назад

    FERA!!! 🦁

  • @robinwatts8374
    @robinwatts8374 2 года назад

    You're the man

  • @Jansa372
    @Jansa372 Год назад

    I'm creating a modal which on swipe down it closes. The issue is that with e.preventDefault() I can't focus on the element inside the modal because it prevents the click. Is there a work around this please?

  • @OscarSerna-
    @OscarSerna- Год назад

    Thanks!

  • @broadshare
    @broadshare 2 года назад

    Hey Kyle, good stuff thanks. When are you playing the guitar 🎸

  • @diego_sabbagh
    @diego_sabbagh 2 года назад

    Thansk for the video. Noob question: what is that semicolon ";" you put in front of the arrys?

  • @mnnw148
    @mnnw148 Год назад

    great video

  • @karshten9218
    @karshten9218 2 года назад

    Hi! How make drag and drop on mobile diveces, I've done ordinary dnd on desktop, but on mobile devices it wasnt working

  • @amircahyadi9219
    @amircahyadi9219 2 года назад

    Nice share 👍

  • @tlochsta
    @tlochsta 2 года назад

    Nice!

  • @reimdl
    @reimdl 2 года назад

    Super useful

  • @IvanLopes-k9z
    @IvanLopes-k9z Год назад

    Hey love your vids, i don't know if you can help me with something, i did catch the vertical movement and i increase and decrese a variable value and i did set each 10 + or - to do anotherVariable++ and anotherVariable-- and run a function func(anotherVariable) my problem is no matter what i try the function its only called 1 time if i console log instead of a function like cons..log(10+) cons..log(10-) it will print as it should but as soon as i change to a real render code it breaks on first call

  • @el_teodoro
    @el_teodoro 2 года назад

    Can we do this too with iPhone?
    I don't use an iPhone myself, but I need to debug on it for clients...

  • @YoutubeHacksUnleashed
    @YoutubeHacksUnleashed 8 месяцев назад

    Hey Kyle unfortunately my doesn't work.
    Ive tried to navigate to my ip address on the phone but the pages aren't available.

  • @beinyourguard
    @beinyourguard 2 года назад

    awesome!

  • @devstefancho
    @devstefancho 2 года назад

    Could you make a video about pinch zoom to magnify images?

  • @mohammadashrafi2033
    @mohammadashrafi2033 2 года назад

    Great👍

  • @mykalimba
    @mykalimba 2 года назад

    5:38 Weird glitch that knocks video and audio out of sync.

  • @fransjoakimtitulaer2404
    @fransjoakimtitulaer2404 2 года назад

    Amazing

  • @kabkee
    @kabkee 2 года назад

    Hi Kyle, I've found that a semicolon had been automatically added on the first place of a line. It seems like an auto formatting was working.
    I googled up for the reason for using a starting semicolon but I'm not clear what benefit would it be. Would you please let me know why you are using a starting semicolon, what benefit, or why it could be a good habit while coding?

    • @TEDCFPublishing
      @TEDCFPublishing 2 года назад +1

      Not sure about the semicolon either. It would be nice to know if it is a typo or standard practice.

  • @pawejakubowski829
    @pawejakubowski829 2 года назад

    Hello Kyle,
    Thanks for great content.
    I don;t know why I can't run site on my mobile device. I'm on the same internet connection, the same IP adress. Did you come across that kind of situation?

    • @StevieB86
      @StevieB86 2 года назад

      Did you ever figure out how to fix this? I'm having the exact same issue.

  • @tobeyawaagwu1751
    @tobeyawaagwu1751 2 года назад

    Is it there an event for double tapping?

  • @Deathrunify
    @Deathrunify 2 года назад +1

    Is ;[] faster than Array.from() and Array.prototype.call.slice()?

    • @KenW418
      @KenW418 2 года назад +1

      The semicolon is only there because of the interpreter. He doesn't use them on the end of each line. So the interpreter would consider those brackets to be part of the previous statement and execute it like an array (that wouldn't exist). To prevent this, he has to use the semicolon (delimiter) before the brackets.
      The [] is the "spread element" (look it up and read more). It can be used to create arrays from iterable objects. This is an important distinction with Array.from(). Array.from() can create arrays from iterable objects but also array-like objects (things with a length property, but may not be iterable). Neither of which is really faster than the other, but the way he uses the spread element wasn't necessarily what it's designed for. It also doesn't help the readability of your code. Array.from() makes sense to anyone who reads your code and should probably be used for this circumstance more than the spread element for that reason alone.
      The slice method is the old version of Array.from(). Array.from() is more efficient and can create arrays from more complicated data structures, but if browser compatibility is your concern then the slice method is your go to.
      Hope that helps!

    • @Deathrunify
      @Deathrunify 2 года назад +1

      @@KenW418 thank you for this explanation, I appreciate it.

  • @amiralishoja
    @amiralishoja 10 месяцев назад

    Perfect

  • @j0hannes5
    @j0hannes5 2 года назад

    how would one detect the direction of a move?
    (eg. to trigger sth on a 3-finger swipe left gesture)

    • @CirTap
      @CirTap 2 года назад +1

      you'd need to "cache" the initial taps' x/y coordinates and then compare them with those that trigger during the move event.
      Find any classic drag-and-drop tutorial for the trajectory bits. That should give you clues on how to implement that using touch events.
      Also anything that deals with geometries in JS such as "canvas" painting stuff could be useful.

    • @j0hannes5
      @j0hannes5 2 года назад

      thanks. I'll definitely dive more into canvas stuff.
      For multi-touch-gestures, I'll use react-use-gesture. But I was surprised by this video, how straightforward the vanilla solution is.

  • @mohamedyoussef8835
    @mohamedyoussef8835 2 года назад

    Awesome video ++++++++++++++++++ 😃

  • @ayushtiwari1504
    @ayushtiwari1504 2 года назад

    The video which I wanted

  • @terencecluttey8302
    @terencecluttey8302 2 года назад +1

    connecting my phone to the website that is run locally is cool

  • @rachidb9624
    @rachidb9624 2 года назад

    I didn't even know that such Javascript events existed in the first place

  • @EvertJunior
    @EvertJunior 2 года назад

    You're perfect

  • @UnifiedFriends
    @UnifiedFriends 2 года назад

    4:34 Knox 3.8: So you're using a Samsung, released on >= November 11, 2021.
    Fascinating how little it takes, to draw some kind of conclusions about something.

    • @WebDevSimplified
      @WebDevSimplified  2 года назад

      I am using a Samsung phone but it is much older than 2021

    • @UnifiedFriends
      @UnifiedFriends 2 года назад

      @@WebDevSimplified Good to know that at least Business APIs/Frameworks get updates.
      Thanks for the feedback, I wasn't aware that Samsung provides updates for this component. Also for older devices, that may no longer receive system updates.

  • @321sas
    @321sas 2 года назад +1

    Five server which is a different extension automatically gives you the router address

  • @ripon59
    @ripon59 2 года назад

    awesome

  • @phonewebdevs3667
    @phonewebdevs3667 2 года назад

    Is changedTouches an object?.... Am confused there

  • @nathanbanji5015
    @nathanbanji5015 2 года назад

    Can you please do a video on google maps api? I think it would be useful to a lot of people

  • @shapelessed
    @shapelessed 2 года назад +1

    It's the worst when you're trying to have different handlers for click and touch...
    Then you remember touching also registers as a click...
    And yes, you can have both touch and click working on your computer, as long as you have a touch screen and your browser is aware of it.

    • @QwDragon
      @QwDragon 2 года назад

      And you can plug mouse into the phone too ;)

  • @gugildak12
    @gugildak12 2 года назад

    Thanks Kyle. I would use these tricks in my mobile apps developed with React Native(which is basically JScript😊) Maybe they documented already in Touchables.

  • @salexkorsan8790
    @salexkorsan8790 Год назад

    Brother please send me a code in js
    Tap on screen to execute function only once

  • @sm_esy
    @sm_esy 2 года назад

    Nice

  • @josephwong2832
    @josephwong2832 2 года назад

    why was Kyle putting a ; semi colon in front of some lines ??

  • @janearnison
    @janearnison 9 месяцев назад

    anyone get null error? I'm having a hard time fixing this.

  • @gio2156
    @gio2156 2 года назад

    So what about Pointer Events? Its well-supported and much better and easy to use than Touch Events.