Тёмный

Trigger a Function when Scrolling to an Element in React with Intersection Observer 

Colby Fayock
Подписаться 27 тыс.
Просмотров 97 тыс.
50% 1

Learn how to trigger functionality whenever someone scrolls to an HTML element in React with the browser's Intersection Observer API.
We'll walk through using the useRef hook to access a DOM node, using the Intersection Observer to detect if that element is visible inside of the useEffect hook, storing it's visibility in useState, using a hook library, and triggering CSS animations when scrolling down a page.
🧐 What's Inside
00:00 - Intro
00:13 - What tools we'll use like Intersection Observer and React
01:33 - Creating a new React app using a Next.js demo starter
03:01 - Using the useRef hook to access a reference to an HTML DOM node
03:38 - Accessing a Ref in React with useEffect
04:35 - Detecting HTML element visibility with Intersection Observer
06:24 - Storing element visibility state with the useState hook
07:57 - Installing React Intersection Observer hook to simplify code
09:23 - Triggering a CSS animation when scrolling to an element
11:59 - Outro
🗒️ Read More
spacejelly.dev/posts/how-to-t...
💾 Code
github.com/colbyfayock/my-scr...
🔔 Subscribe for more tech and developer videos
ru-vid.com?s...
🐦 Get updates straight to your Twitter @colbyfayock
/ colbyfayock
📸 Catch the next stream live on Twitch @colbyfayock
/ colbyfayock
✉️ Or a newsletter right to your inbox!
www.colbyfayock.com/newsletter/
💝 Sponsor me for more free content like this!
GitHub: github.com/sponsors/colbyfayock
Other: hello@colbyfayock.com
👨‍🚀 Brought to by colbyfayock.com
www.colbyfayock.com
🎥 Want to know what A/V equipment I use?
www.colbyfayock.com/uses
🧰 More Resources
Demo Landing Starter
github.com/colbyfayock/demo-l...
Intersection Observer
developer.mozilla.org/en-US/d...
React Intersection Observer
github.com/thebuilder/react-i...
🎼 Music
Music from Uppbeat (free for Creators!):
uppbeat.io/t/eric-haley/lone-...
License code: LBXM57TITUFTCUND
#colbyfayock #intersectionobserver #reactjs #react #reactjstutorial #nextjs #javascript #webdevelopment

Наука

Опубликовано:

 

18 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 341   
@loop8836
@loop8836 Год назад
Man it’s 12:30am and I am figuring that shit from 11am from previous day And this is best video which explained perfectly
@colbyfayock
@colbyfayock Год назад
Really glad to hear it helped!
@hamzaeshoul
@hamzaeshoul 7 месяцев назад
Very well explained. Thank you for your effort and your pedagogy. I particularly liked the smooth transition you made between using the intersection observer API and the react-intersection-observer package.
@colbyfayock
@colbyfayock 7 месяцев назад
thanks for the kind words!! glad it was helpful
@fidelisitor8953
@fidelisitor8953 Год назад
Thanks for the video mate! Been struggling with this for a while now but this has helped me out a lot. Your explanation's really simple and easy to follow.
@colbyfayock
@colbyfayock Год назад
happy to hear this helped!
@JatinS-yt
@JatinS-yt Год назад
Man I can't thank you much, i have been stuck with the using intersection observer for weeks. That's a blessing man, Love you!
@colbyfayock
@colbyfayock Год назад
glad to hear it helped!! 🙌
@Marlorouse109
@Marlorouse109 Год назад
Thank you for taking the time to explain this functionality. and triggering concept. It really helps me to understand how to approach certain scrolling use cases in React.🙂👏
@colbyfayock
@colbyfayock Год назад
you're welcome!
@lostsunrises7495
@lostsunrises7495 Год назад
Great video Colby! Super striaghtforward and easy to follow! This saved me from a big headache 🙌
@colbyfayock
@colbyfayock Год назад
really glad to hear that!
@John-eq5cd
@John-eq5cd 5 месяцев назад
Very clear, as with all of your videos, thanks. I don't have a favourite use for Intersection Observer, but had been trying to apply it to infinite scrolling. Your video helped me to make the final step. Using a hidden tag, such as a span, placed at the end of an array.map output, when the user scrolls down and reaches the span, inView becomes true and triggers a call to the database to retrieve additional array elements which are then displayed on the page.
@colbyfayock
@colbyfayock 5 месяцев назад
thanks John! that sounds like a good solution. an infinite scroll video could be good 🤔😁
@zohabali7130
@zohabali7130 Год назад
wow!!! It was really smooth. Was looking for a solution like this for almost a day. You explained it in a perfect way. Thanks for providing so much value
@colbyfayock
@colbyfayock Год назад
Thanks glad to hear that!
@KingPacavision
@KingPacavision 9 месяцев назад
If i knew about this hook before it could have saved me so much heartache thank you for explaining this in a concise way.
@colbyfayock
@colbyfayock 9 месяцев назад
no problem! glad you were able to eventually find it :)
@silenux7419
@silenux7419 2 года назад
This was great. Thanks for doing it the manual way first, sometimes we have restrictions on using third party packages so it's great to know how it works under the hood.
@colbyfayock
@colbyfayock 2 года назад
thanks, no problem, definitely great to see both ways to have the option
@JamesQQuick
@JamesQQuick 2 года назад
So cool and so easy!
@colbyfayock
@colbyfayock 2 года назад
thanks James! 🙌
@marktheunknown1829
@marktheunknown1829 Месяц назад
This is what I needed for a sticky header changing style whilst scrolling. Thanks a lot
@colbyfayock
@colbyfayock Месяц назад
No problem!
@simple_user000
@simple_user000 Год назад
Seriously bro, this is what i've been struggling for many days! Thanks a lot colby!!!
@colbyfayock
@colbyfayock Год назад
No problem 🙌
@havefun5519
@havefun5519 11 месяцев назад
I knew this NPM today, really coool~ it's good tut that you write the code first and then tried to use the NPM package to implement the same functionality.🚀🚀
@colbyfayock
@colbyfayock 11 месяцев назад
thanks glad you found it helpful!
@athmanbakari9724
@athmanbakari9724 Год назад
Great video, was really helpful It was nice how you explained each line with enough detail to grasp the concept
@colbyfayock
@colbyfayock Год назад
thank you! glad to hear that :D
@ashimxtha6407
@ashimxtha6407 8 месяцев назад
thanks for this video mate helps many people who had no idea about such observer hope your channel grows good .
@colbyfayock
@colbyfayock 8 месяцев назад
Thanks. 😁
@ivan4486
@ivan4486 5 месяцев назад
Thank you so much! I had trudged through a bunch of very similar videos with people using scroll evenlisteners in react🤦‍♂before finding this one!
@colbyfayock
@colbyfayock 5 месяцев назад
no problem! glad you eventually found it :)
@anthonyiu
@anthonyiu Год назад
That's brilliant! Thanks for the tutorial. That custom hook saved me a lot of time😊
@colbyfayock
@colbyfayock Год назад
Awesome! Thank you 😁
@RizaHariati
@RizaHariati Год назад
Thank you! Your explanation is very simple and clear. And the hooks helps alot
@colbyfayock
@colbyfayock Год назад
No problem 🙌 glad to hear that
@mordicai4296
@mordicai4296 Год назад
This is exactly what I was looking for, thank you!
@colbyfayock
@colbyfayock Год назад
np, glad it helped!
@totfosk
@totfosk Год назад
Perfect video and explanation. I tried to do that on my own and was getting crazy getting undefineds everywhere XD. Cheers master
@colbyfayock
@colbyfayock Год назад
Thanks! Glad it helped
@adityatiwari7337
@adityatiwari7337 Год назад
Thanks Colby! This was huge help!
@colbyfayock
@colbyfayock Год назад
glad to hear that!! 🙌
@w2ytube
@w2ytube 2 года назад
Nice vid as usual. Very clear and very didactic 👏Thanks a lot Colby!
@colbyfayock
@colbyfayock 2 года назад
no problem! 🙌
@ranatrinchada
@ranatrinchada Год назад
I just check it out! thank you so much for explaning this! 😎
@colbyfayock
@colbyfayock Год назад
no problem!
@good_hunter7724
@good_hunter7724 Год назад
Spend a couple of hours before have find the answer in this video. Thanks!
@colbyfayock
@colbyfayock Год назад
wish you found it sooner :) but glad to hear that it helped!
@plorandi
@plorandi Год назад
That was exactly what I was looking for. Thank you so much!
@colbyfayock
@colbyfayock Год назад
you got it! 🙌
@inspriongaming4992
@inspriongaming4992 Год назад
Thanks bro you explain much better and even saved my time
@colbyfayock
@colbyfayock Год назад
Glad to hear it helped!
@lucianalbuquerque
@lucianalbuquerque 2 года назад
Perfect video, so clear! THANK YOU !
@colbyfayock
@colbyfayock 2 года назад
yay no problem!
@cvetanstojanovski559
@cvetanstojanovski559 Год назад
Finally, I've understood what is useRef. Thanks a lot!
@colbyfayock
@colbyfayock Год назад
yay no problem!
@eleah2665
@eleah2665 2 года назад
Team! Thanks Colby. Always glad to see some npm package that does most of the work for me.
@colbyfayock
@colbyfayock 2 года назад
definitely a useful one :)
@rorymaguire145
@rorymaguire145 2 года назад
Great tutorial thank you Colby, helped me out a lot
@colbyfayock
@colbyfayock 2 года назад
No problem!
@rodrigomenezes22
@rodrigomenezes22 Год назад
Thank you man! This is awesome! I will start using it today! :)
@colbyfayock
@colbyfayock Год назад
no prblem! happy to hear it was helpful
@faustozambrano4901
@faustozambrano4901 Год назад
Thanks a lot for this great video, brother...Imma get my pages wiggling so hard now
@colbyfayock
@colbyfayock Год назад
Wiggle wiggle wiggle
@sayedpritom
@sayedpritom Год назад
Helped a lot! Thank you so much.
@colbyfayock
@colbyfayock Год назад
no problem!
@fabianpetersen2452
@fabianpetersen2452 Год назад
Thanks alot, i tried getting the window.scrollY to work with React and it is not as simple as the vanilla JS version. Your explanation was easy to follow, subscribed 👍
@colbyfayock
@colbyfayock Год назад
thanks, glad to hear that!
@vighneshs416
@vighneshs416 Год назад
Amazing explanation Colby, you just earned a new sub. Thanks
@colbyfayock
@colbyfayock Год назад
thank you!
@umairkhalid8204
@umairkhalid8204 11 месяцев назад
Thank you so much man! Just what I was looking for ❤
@colbyfayock
@colbyfayock 11 месяцев назад
no problem!
@ajjo5513
@ajjo5513 2 года назад
Thank you so much. Always wanted to know how to use intersection observer in react and how such animations worked in react without reaching for a library like framer motion.
@colbyfayock
@colbyfayock 2 года назад
no problem! Framer is an awesome library but there's a lot you can do before jumping on it
@laous
@laous Год назад
Thank you very much Colby!
@colbyfayock
@colbyfayock Год назад
no problem!
@trevorbryant2006
@trevorbryant2006 Год назад
after many videos I have arrived to the one I need! Thanks for the awesome video man
@colbyfayock
@colbyfayock Год назад
no problem :)
@oswaldoj.avilesibarra3739
@oswaldoj.avilesibarra3739 2 года назад
Thanks Colby, just what I was trying to do. Suscribed!
@colbyfayock
@colbyfayock 2 года назад
Thank you!
@CryptoMarketSummary
@CryptoMarketSummary Год назад
All of your videos have great little nuggets of "hey this is how useRef works" or other quirky functions/hooks/etc. Loving your videos.
@colbyfayock
@colbyfayock Год назад
thanks! never thought about that perspective, but generally i like to give context around things to not make an assumption people know certain things :D
@CryptoMarketSummary
@CryptoMarketSummary Год назад
@@colbyfayock yeah man super appreciated. I feel like part of it is the fact that you explain even the "basic" stuff along the way. I.E., verbally saying "destructuring this import" while typing import { somethingCool } from 'superCool'
@8koi245
@8koi245 Год назад
no way!! TYSM ❤️ btw mixing this whit framer-motion is just *chef kiss* btw btw no way you actually talked about it!!
@colbyfayock
@colbyfayock Год назад
😂 similar minds! glad you enjoyed this :)
@user-qs8rs1ul8l
@user-qs8rs1ul8l 8 месяцев назад
NIce! This is what I was looking for! Thank you
@colbyfayock
@colbyfayock 8 месяцев назад
glad you found it! 🙌
@nocturno7887
@nocturno7887 2 года назад
Thank you man. I managed to implement your solution successfully
@colbyfayock
@colbyfayock 2 года назад
awesome! glad it worked out 💪
@mdkhorshed2043
@mdkhorshed2043 9 месяцев назад
Many many thanks sir. Your tutorial really helps us :)
@colbyfayock
@colbyfayock 9 месяцев назад
You're welcome!
@atulyakr.2003
@atulyakr.2003 9 месяцев назад
thank you very much. Bohot time bachaya h is trick ne mera🙏
@colbyfayock
@colbyfayock 9 месяцев назад
No problem!
@Madmann16
@Madmann16 Год назад
Just wow, i found another gem to the community thank you
@colbyfayock
@colbyfayock Год назад
@kunaldhuria3935
@kunaldhuria3935 Год назад
What an amazing video thank you so much🙏
@colbyfayock
@colbyfayock Год назад
no problem :D
@mubashirwaheed474
@mubashirwaheed474 7 месяцев назад
Thank you so much Colby
@colbyfayock
@colbyfayock 7 месяцев назад
no problem!
@abhishekkumar-kt3uk
@abhishekkumar-kt3uk Год назад
Amazing, thanks buddy 🙏
@colbyfayock
@colbyfayock Год назад
No problem 🙌
@sunithab2704
@sunithab2704 7 месяцев назад
Thank you so much for this!!
@colbyfayock
@colbyfayock 7 месяцев назад
no problem!
@mohammadalaaelghamry8010
@mohammadalaaelghamry8010 11 месяцев назад
Great video. Very useful thank you.
@colbyfayock
@colbyfayock 11 месяцев назад
You're welcome!
@happyharsh
@happyharsh 2 месяца назад
Really Helpful. Thanks!
@colbyfayock
@colbyfayock 2 месяца назад
no problem!
@pouyabh
@pouyabh 10 месяцев назад
Thanks alooootttttttt For both ways that u said Love the session 🔥🔥🔥🔥🔥🔥❤️❤️❤️❤️❤️❤️
@colbyfayock
@colbyfayock 10 месяцев назад
Glad it helped!
@M1szS
@M1szS Месяц назад
thanks dude, this was rlly helpful
@colbyfayock
@colbyfayock Месяц назад
no problem!
@YanParoni
@YanParoni 2 года назад
you are amazing colby, thanks so much
@colbyfayock
@colbyfayock 2 года назад
You got it!!
@felipespena1124
@felipespena1124 Год назад
Great video, super clear! thanks
@colbyfayock
@colbyfayock Год назад
thank you!
@madsudan9227
@madsudan9227 Год назад
Thanks for the superb explanation..keep teaching..
@colbyfayock
@colbyfayock Год назад
No problem 😁🙌
@jrome_20
@jrome_20 2 года назад
Super useful! Thank you so much!
@colbyfayock
@colbyfayock 2 года назад
No problem! 🙌
@user-ep5yq8ek3e
@user-ep5yq8ek3e 20 дней назад
great example, thanks a lot
@colbyfayock
@colbyfayock 20 дней назад
no problem!
@emirdior
@emirdior Год назад
Great explanation, thanks
@colbyfayock
@colbyfayock Год назад
No problem! 🙌
@Fishamble
@Fishamble Год назад
Greta teaching style and wonderful presentation. Thanks.
@colbyfayock
@colbyfayock Год назад
thanks and your welcome!
@user-lg9il4ld1p
@user-lg9il4ld1p 3 месяца назад
really understandble,thanks bro.
@colbyfayock
@colbyfayock 3 месяца назад
no problem!
@davediaz25
@davediaz25 Год назад
Man, you are a life saver!
@colbyfayock
@colbyfayock Год назад
i got you!
@thedevmarc5634
@thedevmarc5634 2 года назад
Wow, this was so easy! Thank you!
@colbyfayock
@colbyfayock 2 года назад
No problem 🙌
@NotBeHaris
@NotBeHaris 2 года назад
Thanks for sharing great knowledge.
@colbyfayock
@colbyfayock 2 года назад
no problem! 🙌
@thelyricsguy3094
@thelyricsguy3094 Год назад
Your explanation is very much clear and easy to understand 😃 +1 subscriber
@colbyfayock
@colbyfayock Год назад
Thank you!!
@alexmir9878
@alexmir9878 11 месяцев назад
Great video and article, ty for it 🚀
@colbyfayock
@colbyfayock 11 месяцев назад
no problem!
@biplabsharma5344
@biplabsharma5344 Год назад
Subscribed mate amazing content
@deathdefier45
@deathdefier45 Год назад
Top knotch content brother helped a lot at work thanks!
@colbyfayock
@colbyfayock Год назад
thank you!
@appwala3728
@appwala3728 5 месяцев назад
Learned too much from this thank you
@colbyfayock
@colbyfayock 5 месяцев назад
no problem!
@nitinarora4315
@nitinarora4315 Год назад
was a life-saver. Thanks a lot.
@colbyfayock
@colbyfayock Год назад
No problem 🙌
@reyreyalldayday5708
@reyreyalldayday5708 2 года назад
Colby yous the goat. Thanks for the vids dude
@colbyfayock
@colbyfayock 2 года назад
thank you 🙏
@edsonlucas4758
@edsonlucas4758 9 месяцев назад
Very good video, helped me a lot!
@colbyfayock
@colbyfayock 9 месяцев назад
thanks! glad to hear that
@lauraneves9362
@lauraneves9362 Год назад
Thanks!!! That was just what I needed!!
@colbyfayock
@colbyfayock Год назад
No problem 🙌
@kirakira160
@kirakira160 2 года назад
Thank you Colby
@colbyfayock
@colbyfayock 2 года назад
you're quite welcome! :)
@leonardocitton4627
@leonardocitton4627 2 года назад
Great content as ever!
@colbyfayock
@colbyfayock 2 года назад
thanks :D
@imanshokryeh5406
@imanshokryeh5406 Год назад
thx a lot it was very helpful👍
@colbyfayock
@colbyfayock Год назад
Np!
@thiagoleite3255
@thiagoleite3255 8 месяцев назад
thx friend, you're a friend.
@colbyfayock
@colbyfayock 8 месяцев назад
nada 😁
@ebertorresmacedo3667
@ebertorresmacedo3667 Год назад
this video helped me alot!
@colbyfayock
@colbyfayock Год назад
awesome to hear!
@xikmatillamominov8784
@xikmatillamominov8784 Год назад
great video thank you
@colbyfayock
@colbyfayock Год назад
no problem!
@madeit130
@madeit130 Год назад
nice tutorial, thank you ;)
@colbyfayock
@colbyfayock Год назад
no problem!
@aSTr0NeRF0999
@aSTr0NeRF0999 2 года назад
I like the way you teach ! Great contents ! Thanks for sharing ! It's sooooo helpful ! +++
@colbyfayock
@colbyfayock 2 года назад
Thank you! No problem at all 🙌
@fullgames926
@fullgames926 2 года назад
x2
@ademferchichi1408
@ademferchichi1408 Год назад
thank you .. you saved me !
@colbyfayock
@colbyfayock Год назад
yay! np 🙌
@albinsjolin649
@albinsjolin649 Год назад
Thank you my dude, was using some hack with onScroll and trying different hegihts and pixels.... THIS saved me
@colbyfayock
@colbyfayock Год назад
glad to hear that! 🙌
@manoj-k
@manoj-k 11 месяцев назад
Learn something whenever I come here❤
@colbyfayock
@colbyfayock 11 месяцев назад
awesome happy to hear that! 🙌
@rohil3023
@rohil3023 2 года назад
Awesome tutorial!!
@colbyfayock
@colbyfayock 2 года назад
Thank you!!
@parvan7716
@parvan7716 10 месяцев назад
Thank you bro
@colbyfayock
@colbyfayock 10 месяцев назад
you got it!
@ranasaani
@ranasaani Год назад
Thank you
@colbyfayock
@colbyfayock Год назад
you're welcome!
@patitorodri
@patitorodri Год назад
Great, video!!
@colbyfayock
@colbyfayock Год назад
Thank you!
@lucasquadros5600
@lucasquadros5600 2 года назад
It helped me a lot, thx
@colbyfayock
@colbyfayock 2 года назад
Awesome, no problem!
@lazyreport
@lazyreport 11 месяцев назад
THANK YOU SO MUCHHHH
@colbyfayock
@colbyfayock 11 месяцев назад
No problem 😁
@juanortegaa6916
@juanortegaa6916 2 года назад
Hey Colby, just discovered your channel, but I know you from Major League Hackaton, Thanks for all these great content From Southamerica regards !!!
@colbyfayock
@colbyfayock 2 года назад
hey Juan thats awesome, thanks for checking out my channel!
@developedbyvarun
@developedbyvarun Год назад
Fantastic! You earned your subscription.
@colbyfayock
@colbyfayock Год назад
thank you!!
@developedbyvarun
@developedbyvarun Год назад
@@colbyfayock btw do you mind telling me where to buy this T-shirt you are wearing?
@colbyfayock
@colbyfayock Год назад
@@developedbyvarun i got it on the GitHub Shop though im not seeing it: thegithubshop.com/
@developedbyvarun
@developedbyvarun Год назад
Sad!
@allanfernz9356
@allanfernz9356 Год назад
Great video! You just gained a sub! :)
@colbyfayock
@colbyfayock Год назад
thank you!!
@bluechipsolutions4860
@bluechipsolutions4860 8 месяцев назад
Thanks dude
@colbyfayock
@colbyfayock 8 месяцев назад
no problem!
@guy84eilon
@guy84eilon Год назад
love it!
@colbyfayock
@colbyfayock Год назад
thank you!
@Coolgardt
@Coolgardt 2 года назад
Thank you thank you thank you
@colbyfayock
@colbyfayock 2 года назад
you're quite welcome! 🙌
@moretimeproductions
@moretimeproductions 2 года назад
You are awesome!
@colbyfayock
@colbyfayock 2 года назад
thank you! 🤩
Далее
Final muy increíble 😱
00:46
Просмотров 3,5 млн
Best Way to Add Popup Modals in React
26:19
Просмотров 3 тыс.
You Don't Need a CMS - Use This Instead
28:55
Просмотров 14 тыс.
Infinite Scrolling With React - Tutorial
25:28
Просмотров 350 тыс.
This Fixes CORS
13:02
Просмотров 991
Top 10 CSS One Liners That Will Blow Your Mind
13:34
Просмотров 907 тыс.
How To Unlock Your iphone With Your Voice
0:34
Просмотров 24 млн
iPhone 12 socket cleaning #fixit
0:30
Просмотров 43 млн
Face ID iPhone 14 Pro
0:59
Просмотров 22 тыс.