Animate.css 预定义动画

基于 Animate.css 4.x · 丰富的跨浏览器 CSS 动画库

实例 1:基础用法

最简单的用法:为元素添加 animate__animated 类和动画类名。

<!-- 引入 CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"> <!-- 使用:两个类缺一不可 --> <h1 class="animate__animated animate__bounce"> 弹跳的标题 </h1> // 规则: // 1. 必须添加 animate__animated 基础类 // 2. 再添加具体的动画类(带 animate__ 前缀)

持续脉动

animate__pulse + animate__infinite

实例 2:注意力吸引类动画(Attention Seekers)

适合用于强调按钮、通知、徽章等元素。

// 常用注意力动画: animate__bounce // 弹跳 animate__flash // 闪烁 animate__pulse // 脉冲 animate__rubberBand // 橡皮筋 animate__shakeX // 水平摇动 animate__shakeY // 垂直摇动 animate__swing // 摇摆 animate__tada // 庆祝 animate__wobble // 摆动 animate__jello // 果冻 animate__heartBeat // 心跳
🏀
bounce
flash
💓
pulse
🎈
rubberBand
🎪
swing
🎉
tada
🌊
wobble
❤️
heartBeat

实例 3:淡入动画(Fading Entrances)

元素进入视口时从透明渐变到完全可见,适合页面加载。

// 常用淡入动画: animate__fadeIn // 淡入 animate__fadeInDown // 从上方淡入 animate__fadeInUp // 从下方淡入 animate__fadeInLeft // 从左侧淡入 animate__fadeInRight // 从右侧淡入 animate__fadeInDownBig // 从远处上方淡入(位移更大) animate__fadeInTopLeft // 从左上角淡入 animate__fadeInTopRight // 从右上角淡入
🌫️
fadeIn
⬇️
fadeInDown
⬆️
fadeInUp
➡️
fadeInLeft
⬅️
fadeInRight
💥
fadeInDownBig
↘️
fadeInTopLeft
↙️
fadeInTopRight

实例 4:滑动动画(Sliding Entrances)

元素从不同方向滑动进入,动感十足。

// 滑动入场动画: animate__slideInDown // 从顶部滑入 animate__slideInUp // 从底部滑入 animate__slideInLeft // 从左侧滑入 animate__slideInRight // 从右侧滑入 // 滑动出场动画: animate__slideOutDown // 向底部滑出 animate__slideOutUp // 向顶部滑出 animate__slideOutLeft // 向左侧滑出 animate__slideOutRight // 向右侧滑出
🔽
slideInDown
🔼
slideInUp
slideInLeft
slideInRight
⬇️
slideOutDown
⬅️
slideOutLeft
➡️
slideOutRight
⬆️
slideOutUp

实例 5:缩放动画(Zooming)

元素通过放大或缩小的方式进入/退出,适合弹窗、图片。

// 缩放动画: animate__zoomIn // 放大进入 animate__zoomInDown // 从上方放大进入 animate__zoomInUp // 从下方放大进入 animate__zoomInLeft // 从左侧放大进入 animate__zoomInRight // 从右侧放大进入 animate__zoomOut // 缩小退出 animate__zoomOutDown // 向下方缩小退出 animate__zoomOutUp // 向上方缩小退出
🔍
zoomIn
⬇️
zoomInDown
⬆️
zoomInUp
⬅️
zoomInLeft
➡️
zoomInRight
🔎
zoomOut
⬇️
zoomOutDown
⬆️
zoomOutUp

实例 6:翻转动画(Flippers)

元素进行 3D 翻转,适合卡片、产品展示。

// 翻转动画: animate__flip // 翻转 animate__flipInX // 水平翻转进入 animate__flipInY // 垂直翻转进入 animate__flipOutX // 水平翻转退出 animate__flipOutY // 垂直翻转退出
🔄
flip
↔️
flipInX
↕️
flipInY
🔄
flipOutX
🔃
flipOutY

实例 7:旋转动画(Rotating Entrances)

元素旋转着进入视口,充满动感。

// 旋转入场: animate__rotateIn // 旋转进入 animate__rotateInDownLeft // 从左下角旋转进入 animate__rotateInDownRight // 从右下角旋转进入 animate__rotateInUpLeft // 从左上角旋转进入 animate__rotateInUpRight // 从右上角旋转进入 // 旋转出场: animate__rotateOut // 旋转退出 animate__rotateOutDownLeft // 向左下角旋转退出 animate__rotateOutDownRight // 向右下角旋转退出 animate__rotateOutUpLeft // 向左上角旋转退出 animate__rotateOutUpRight // 向右上角旋转退出
🔄
rotateIn
↙️
rotateInDownLeft
↘️
rotateInDownRight
↖️
rotateInUpLeft
↗️
rotateInUpRight
🔁
rotateOut
🛞
rollIn
📦
jackInTheBox

实例 8:控制动画速度与延迟

使用内置工具类或 CSS 变量自定义动画时长、延迟、重复次数。

// 速度类(控制持续时间): animate__slow // 2s animate__slower // 3s animate__fast // 800ms animate__faster // 500ms // 延迟类: animate__delay-2s // 延迟 2s animate__delay-3s // 延迟 3s animate__delay-4s // 延迟 4s animate__delay-5s // 延迟 5s // 重复类: animate__repeat-1 // 重复 1 次 animate__repeat-2 // 重复 2 次 animate__repeat-3 // 重复 3 次 animate__infinite // 无限循环 // 也可用 CSS 变量自定义: <div style="--animate-duration: 3s; --animate-delay: 1s;"> 自定义时长和延迟 </div>
🐢
slow (2s)
🐌
slower (3s)
🐇
fast (800ms)
faster (500ms)
delay 2s
⏱️
delay 3s
2️⃣
repeat 2
3️⃣
repeat 3

实例 9:通过 CSS 变量自定义动画

使用 CSS 变量精细控制动画参数,灵活定制。

/* 全局修改所有动画 */ :root { --animate-duration: 800ms; --animate-delay: 0.5s; } /* 局部修改某个元素 */ .custom-anim { --animate-duration: 3s; --animate-delay: 1s; --animate-repeat: 2; } <div class="animate__animated animate__fadeIn custom-anim"> 自定义参数动画 </div>

持续 3 秒的缩放进入

使用 --animate-duration: 3s 自定义

重复 5 次的弹跳

使用 --animate-repeat: 5 + --animate-duration: 1.5s

实例 10:交互动画演示

点击按钮,观察下方元素触发对应的动画效果。

// 通过 JS 动态添加动画类 function playAnimation(animName) { const el = document.getElementById('demo-element'); // 先移除所有动画类 el.className = ''; // 触发重绘 void el.offsetWidth; // 重新添加动画类 el.classList.add('animate__animated', animName); } // 监听动画结束事件,可以串联动画 el.addEventListener('animationend', () => { console.log('动画结束'); });
👇 点击上方按钮触发动画 👇

实例 11:按钮悬停动画

鼠标悬停时触发动画,提升按钮交互体验。

/* 鼠标悬停触发动画 */ .btn-hover:hover { animation: pulse; animation-duration: 1s; } // 或使用 JS 添加动画类 btn.addEventListener('mouseenter', () => { btn.classList.add('animate__animated', 'animate__pulse'); btn.addEventListener('animationend', () => { btn.classList.remove('animate__animated', 'animate__pulse'); }, { once: true }); });