使用threejs实现滚动效果的示例代码
作者:成雨_
某一天我在刷抖音时,看到一个UI设计师分享了一个好看的网页滚动动效设计,那种飘逸流畅的动画效果立刻抓住了我的眼球,我脑海里立刻开始想象用代码如何实现这个效果,所以本文给大家分享了如何使用threejs实现滚动效果,感兴趣的朋友可以参考下
前因
某一天我在刷抖音时,看到一个UI设计师分享了一个好看的网页滚动动效设计。那种飘逸流畅的动画效果立刻抓住了我的眼球,我脑海里立刻开始想象用代码如何实现这个效果。
于是我把设计师的视频保存下来研究,反复琢磨每个动画细节需要哪些技术来配合。随后我开工码代码,一个个函数、一个个模块地构建起这个动效。在磨合调试的过程中,我时而眉头紧锁,时而按捺不住兴奋的心情。
经常关注优秀的设计作品,尝试用代码实现,这样不仅可以增强自己的编程能力,也可以从中获取乐趣。这种从设计到编码的过程,就像一个创造的闭环。
很高兴可以通过编程让虚拟的代码世界连接起这个美好的现实世界。
设计相关(Figma+dora)
感谢“设计师Cc”提供的稿子
戳这里。对Dora
工具有大致了解后,已经大致实现思路,想用代码实现的关键是:滚动 + 关键帧动画
预览
实现
技术选型
3d模型展示:
- @react-three/fiber: 流行的
threejs
React 封装 - @react-three/drei:
threejs
开发的辅助工具
动画库:
- GSAP:N逼,很全面的动画库
- ScrollTrigger:
GSAP
滚动动画插件
动画实现
关键代码
请先了解 Gsap Timeline 动画配置相关内容,请仔细查看官方示例,体会时间线的妙用。
思路:将滚动插件与时间线动画相关联,然后就是划分每个时间段该做的动画,比如:0~2s(旋转+移动),2~3s(旋转+...),其实这个过程就类似于Dora
3d网页动效工具在时间轴上打关键帧的过程。
结尾
以上就是使用threejs实现滚动效果的示例代码的详细内容,更多关于threejs实现滚动效果的资料请关注脚本之家其它相关文章!