正在加载视频...

视频加载失败

I recorded a 14-min tutorial on how I created this Scroll-based Animatd landing page. ❤️‍🔥Full Step-by-step tutorial, save it for later!

58,337 次观看 • 7 个月前 •via X (Twitter)

27 条评论

tagee 的头像
tagee7 个月前

Roughly, the idea is: 1. Images from Freepik 2. Video via Kling 3. Break it into frames (ezgif) 4. Vibe coding with Antigravity --- Prompt: Cinematic Scrolltelling with Canvas & GSAP Goal: Create a cinematic "Scrolltelling" effect in a React (TypeScript) application. The core idea is to play an image sequence (video frames) based on the user's scroll position, creating a high-performance video-like illusion controlled entirely by the mouse wheel. Technical Stack: Framework: React (TypeScript) Styling: Tailwind CSS Rendering: HTML5 <canvas> Animation: GSAP (with ScrollToPlugin) Detailed Requirements: Frame Preloading & Loading State:Preload a sequence of 180 images (e.g., frame-001.jpg to frame-180.jpg) into a memory array before rendering starts. Implement a "Loading Screen" overlay that displays the real-time percentage of loaded frames. Canvas Rendering Logic:Use a fullscreen <canvas> element (fixed inset-0 w-full h-full). Create a drawFrame(index) function to render the specific frame to the canvas. Crucial: Implement a manual object-fit: cover logic using aspect ratio math so the images always fill the screen perfectly without distortion, regardless of window size. Include a ZOOM_FACTOR variable (e.g., 1.35) in the draw calculation to slightly zoom into the frames, effectively hiding any baked-in black bars or letterboxing. Scroll-to-Frame Mapping:Set the container height to 500vh to create a long scrollable area. Listen for the scroll event and calculate a scrollFraction (0 to 1) based on window.scrollY and the maximum scrollable height. Map this fraction to the frame index (0–179) and use requestAnimationFrame to trigger drawFrame for buttery-smooth performance. Interactive Mouse Parallax:Add a mousemove event listener. Use to smoothly shift the canvas position in the opposite direction of the mouse movement to create a sense of 3D depth. Apply a CSS scale: 1.05 to the canvas to ensure that its edges never become visible during the parallax offset. Performance & UX:Ensure the canvas handles window resizing dynamically. The background should remain solid black to maintain a cinematic atmosphere. Use GSAP's ScrollToPlugin for smooth programmatic navigation (e.g., "Scroll to Top" buttons).

selfhost. 🇹🇭 (ノಠ益ಠ)ノ 的头像
selfhost. 🇹🇭 (ノಠ益ಠ)ノ7 个月前

what the fuck is the website supposed to be promoting lmao

Roberto Nickson 的头像
Roberto Nickson7 个月前

This is awesome, appreciate the game!

Utkarsh Singh 的头像
Utkarsh Singh7 个月前

14 minutes is a solid commitment. Can’t wait to see how you tackled the scroll animations.

Avinash 的头像
Avinash7 个月前

Sounds awesome! A detailed tutorial is always a win. Can't wait to check it out and level up my skills!

Arkhe 的头像
Arkhe7 个月前

u cooked legend🔥🔥 impressive

Emmanuel EJ McDuffie 的头像
Emmanuel EJ McDuffie7 个月前

Damn bro this rockstar shyt right here 🤟🏿

yuvraj 的头像
yuvraj7 个月前

Amazing. Will try this

Ogutuga Victor | Product Designer 的头像
Ogutuga Victor | Product Designer7 个月前

Damn this is so good 👏👏

Kevser 的头像
Kevser7 个月前

Solid execution on both the visuals and the teaching.

Hiroshi | Game Economy Designer 的头像
Hiroshi | Game Economy Designer7 个月前

that's a fire landing🔥

Alp Arslan Mirasow 的头像
Alp Arslan Mirasow7 个月前

I love it

cham 的头像
cham7 个月前

good one

wahris 的头像
wahris7 个月前

Legit🏅

ZerdaluWorks 的头像
ZerdaluWorks6 个月前

Thanks for the tutorial. It was really helpful. I have a question though, how do you find clients?

ξth.c 的头像
ξth.c7 个月前

stunning!

Ripplix 的头像
Ripplix7 个月前

Way this scroll-driven sequence flows through the canvas is absolute butter. The frame mapping is so clean. Insane work by @viktoroddy ⚡️

Hanife Keles 的头像
Hanife Keles7 个月前

This Looks amazing

Speedy 的头像
Speedy7 个月前

Nice work and thank you for sharing

ernesto.design 的头像
ernesto.design7 个月前

😎

iflah olmaz optimist 的头像
iflah olmaz optimist7 个月前

Really nice!

Manuel Arias 的头像
Manuel Arias7 个月前

thank you!!!

Q.Young 的头像
Q.Young7 个月前

Awesome! Save it for later!

tagee 的头像
tagee7 个月前

Thanks a lot! I went through it a few times and learned a ton

shaquille o'atmeal 的头像
shaquille o'atmeal7 个月前

whats the font in the beginning

Luke 的头像
Luke7 个月前

Love this tutorial, thanks for sharing it!

Gsv 的头像
Gsv7 个月前

The prompt is blurry on my side ,can anyone please just write it here or send a clear screenshot -thanks in advance 🙏🙏

相关视频