网站首页 > 技术文章 正文
大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
什么是 GSAP
GSAP (GreenSock Animation Platform), a JavaScript animation library for the modern web.
GSAP 是一个与框架无关的灵活、零依赖 JavaScript 动画库,可将开发人员变成动画超级英雄,适用于构建所有主流浏览器的高性能动画,包括: CSS、SVG、Canvas、React、Vue、WebGL、颜色、字符串、运动路径、通用对象等等。同时,GSAP 的 ScrollTrigger 插件实现了以最少的代码提供令人惊叹的滚动动画,而且 gsap.matchMedia() 使构建响应迅速、易于访问的动画变得非常容易。
GSAP 提供了先进的排序、可靠性和严格的动画控制,同时解决了超 1200 万个网站上的实际问题,比如:浏览器不一致。从本质上讲,GSAP 是一个高速属性操纵器,可以随时间以极高的精度更新值,比 jQuery 快 20 倍!
GSAP 提供了诸多可选插件和缓动函数可轻松实现高级效果,例如:滚动、变形、沿运动路径动画或翻转动画。甚至还有一个方便的观察器,用于跨浏览器、设备规范事件检测。
目前 GSAP 在 Github 通过 MIT 协议开源,有超过 19k 的 star、2k 的 fork、176k 的项目依赖量、是一个妥妥的前端优质开源项目。
如何使用 GSAP
首先需要安装依赖,可以通过 npm 包管理器也可以通过 CDN 直接引用:
npm install gsap
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12/dist/gsap.min.js"></script>
GSAP 的核心可以对几乎所有内容进行动画处理,包括: CSS 和属性,此外还包括所有实用方法,例如: interpolate()、mapRange()、大多数 eases 方法,并且它可以执行捕捉和修改。
import gsap from "gsap";
// 导入依赖并获取插件
import ScrollTrigger from "gsap/ScrollTrigger";
import Flip from "gsap/Flip";
import Draggable from "gsap/Draggable";
// 或从 “all” 文件导出所有工具,不包括仅限会员的插件
import {gsap, ScrollTrigger, Draggable, MotionPathPlugin} from "gsap/all";
// 注册插件
gsap.registerPlugin(ScrollTrigger, Draggable, Flip, MotionPathPlugin);
如果要寻找滚动驱动的动画,可以使用 GSA?P 的 ScrollTrigger 插件,同时还配套了一个 ScrollSmoother。
ScrollTrigger 使任何开发者都可以用最少的代码创建令人惊叹的基于滚动的动画,支持:无限灵活、拖动、固定、捕捉或只是触发任何与滚动相关的内容,即使它与动画无关。
gsap.registerPlugin(ScrollTrigger)
gsap.to('.box', {
scrollTrigger: '.box', // start animation when ".box" enters the viewport
x: 500
});
如果要在 React 项目中使用 GSAP,可以通过 @gsap/react 包提供的 useGSAP() Hooks,其是 useEffect()/useLayoutEffect() 的直接替代品,可以自动执行清理任务。
import {useRef} from "react";
import gsap from "gsap";
import {useGSAP} from "@gsap/react";
const container = useRef();
useGSAP(() => {
// gsap 代码
}, {scope: container});
// <-- scope is for selector text (optional)
当然,开发者还可以像使用普通 Hooks 一样使用 dependencies 依赖数组:
useGSAP(() => {
// gsap code here...
}, {dependencies: [endX], scope: container});
// config object offers maximum flexibility
更多关于 GSAP 的用法和示例可以参考文末资料,本文不再过多展开。
参考资料
https://github.com/greensock/GSAP
https://www.npmjs.com/package/@gsap/react
- 上一篇: 相见恨晚的 Git 命令动画演示,一看就懂
- 下一篇: 学习web前端开发有哪些好的方法
猜你喜欢
- 2025-01-07 相见恨晚的 Git 命令动画演示,一看就懂
- 2025-01-07 四个新的 CSS 功能实现流畅的进入和退出动画
- 2025-01-07 使用Tailwind CSS创建自定义动画,进阶您的前端开发技能
- 2025-01-07 css实现的创意404动画页面web前端html源码
- 2025-01-07 如何使用 Tailwind CSS 设计高级自定义动画
- 2025-01-07 前端程序员:巧用css圆角实现有点意思的加载动画
- 2025-01-07 13.7K Star!告别枯燥加载! React-Content-Loader 骨架屏动画指南
- 2025-01-07 如何用 Terminalizer 将你的代码制作成炫酷的 GIF 动画?
- 2025-01-07 Theatre.js:一个神奇的网页动画库,用可视化的方式创建动画
- 2025-01-07 前端动画的神级网站 Uiverse.io,复制粘贴就能为所欲为!
你 发表评论:
欢迎- 581℃几个Oracle空值处理函数 oracle处理null值的函数
- 576℃Oracle分析函数之Lag和Lead()使用
- 561℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 561℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 556℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 546℃【数据统计分析】详解Oracle分组函数之CUBE
- 534℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 530℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)