新闻中心

理解 animated 类:Animate.css 动画库入门指南

2025-10-17
浏览次数:
返回列表

理解 animated 类:Animate.css 动画库入门指南

animated 类并非 bootstrap 或 jquery 的内置功能,而是 animate.css 动画库的核心组成部分。它为元素提供了动画所需的通用 css 属性,是激活 animate.css 中各种预定义动画(如弹跳、摇晃、淡出)的关键。本文将深入解析 animated 类的作用、animate.css 的使用方法,并提供示例代码和最佳实践。

什么是 Animate.css 及其核心 animated 类?

在网页开发中,我们经常需要为元素添加各种生动的动画效果,以提升用户体验。Animate.css 是一个广受欢迎的跨浏览器 CSS 动画库,它提供了一系列即用型的动画类,让开发者无需编写复杂的 CSS 关键帧即可实现丰富的动画效果。

其中,animated 类是 Animate.css 的基石。它的作用是为元素应用一系列基础的 CSS 属性,例如 animation-duration(动画持续时间)、animation-fill-mode(动画结束后元素的样式)、animation-timing-function(动画速度曲线)等。这些属性为后续具体的动画效果(如 bounce、shake、fadeOut)提供了必要的上下文和配置。

如果没有 animated 类,即使你添加了 bounce 或 shake 等具体的动画类,这些动画也不会被触发,因为元素缺乏执行动画所需的底层 CSS 规则。因此,animated 类可以被理解为 Animate.css 动画的“启动器”。

需要明确的是,animated 类既不属于 Bootstrap(一个前端框架,主要关注 UI 组件和响应式布局),也不属于 jQuery(一个 J*aScript 库,主要用于 DOM 操作和事件处理)。它是 Animate.css 这个专门的 CSS 动画库所独有的。

Animate.css 的使用方法

使用 Animate.css 实现动画效果非常简单,主要分为两个步骤:引入库文件和应用动画类。

引入库文件

首先,你需要在 HTML 文件的

部分引入 Animate.css 的样式表。你可以选择从 CDN(内容分发网络)引入,也可以下载到本地项目中使用。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Animate.css 教程示例</title>
    <!-- 引入 Animate.css 库文件 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/>
    <style>
        body { font-family: sans-serif; padding: 20px; }
        .example-element {
            width: 180px;
            height: 90px;
            background-color: #007bff;
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 20px;
            border-radius: 8px;
            font-size: 1.2em;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
        button {
            padding: 10px 25px;
            margin: 15px 20px;
            background-color: #28a745;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 1em;
            transition: background-color 0.3s ease;
        }
        button:hover {
            background-color: #218838;
        }
    </style>
</head>
<body>

    <h1>Animate.css 动画效果示例</h1>

    <div id="elementBounce" class="example-element">弹跳效果</div>
    <button id="triggerBounce">触发弹跳</button>

    <div id="elementShake" class="example-element">摇晃效果</div>
    <button id="triggerShake">触发摇晃</button>

    <div id="elementFadeOut" class="example-element">淡出效果</div>
    <button id="triggerFadeOut">触发淡出</button>

    <!-- 引入 jQuery 库,用于 DOM 操作和事件监听 -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            // 初始加载时应用摇晃效果
            $("#elementShake").addClass("animated shake");

            // 触发弹跳效果
            $("#triggerBounce").on("click", function() {
                // 先移除旧的动画类,确保动画能再次触发
                $("#elementBounce").removeClass("animated bounce");
                // 添加 animated 和 bounce 类
                $("#elementBounce").addClass("animated bounce");
                // 监听动画结束事件,动画结束后移除动画类,以便可以重复触发
                $("#elementBounce").one('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function() {
                    $(this).removeClass("animated bounce");
                });
            });

            // 触发摇晃效果
            $("#triggerShake").on("click", function() {
                $("#elementShake").removeClass("animated shake");
                $("#elementShake").addClass("animated shake");
                $("#elementShake").one('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function() {
                    $(this).removeClass("animated shake");
                });
            });

            // 触发淡出效果
            $("#triggerFadeOut").on("click", function() {
                $("#elementFadeOut").removeClass("animated fadeOut");
                $("#elementFadeOut").addClass("animated fadeOut");
                $("#elementFadeOut").one('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function() {
                    $(this).removeClass("animated fadeOut");
                    // 淡出后可以隐藏元素
                    $(this).css('opacity', '0'); // 或者 $(this).hide();
                });
            });
        });
    </script>

</body>
</html>

应用动画类

一旦 Animate.css 库被引入,你就可以通过给 HTML 元素添加 CSS 类来应用动画。基本的模式是:animated + [动画名称]。

例如,要让一个按钮弹跳,一个区域摇晃,或者一个元素淡出,你可以这样做:

// 假设你已经引入了 Animate.css 和 jQuery
$(document).ready(function() {
   // 给一个按钮添加弹跳动画
   $("button").addClass("animated bounce");                 
   // 给一个 class 为 "well" 的元素添加摇晃动画
   $(".well").addClass("animated shake");                                
   // 给一个 id 为 "target3" 的元素添加淡出动画
   $("#target3").addClass("animated fadeOut");        
});

在上述代码中,animated 类确保了动画的基础设置,而 bounce、shake 和 fadeOut 则分别定义了具体的动画效果。

MarsCode MarsCode

字节跳动旗下的免费AI编程工具

MarsCode 339 查看详情 MarsCode

动画的触发与控制

通常情况下,我们希望动画在特定事件发生时才触发,而不是页面加载时就执行。这时,结合 J*aScript(如 jQuery)动态添加或移除类就显得尤为重要。

动态触发动画

如上面的示例所示,通过 jQuery 的 addClass() 方法,我们可以在用户点击按钮、鼠标悬停或满足其他条件时,为元素添加 animated 和具体的动画类,从而触发动画。

动画结束后重置与重复触发

Animate.css 的动画默认只会播放一次。如果你希望动画能重复播放,或者在动画结束后执行其他操作,你需要监听 CSS 动画的结束事件 (animationend)。

对于需要重复触发的动画,一个常见的模式是在动画开始前移除旧的动画类,添加新的动画类,并在动画结束后再次移除它们。这确保了每次触发时动画都能从头开始。

$("#myButton").on("click", function() {
    // 1. 移除旧的动画类,确保动画可以再次触发
    $(this).removeClass("animated bounce");
    // 2. 添加 animated 和 bounce 类来触发动画
    $(this).addClass("animated bounce");
    // 3. 监听动画结束事件,并在结束后移除动画类
    $(this).one('animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd', function() {
        $(this).removeClass("animated bounce");
        // 动画结束后你可以在这里执行其他操作
        console.log("弹跳动画结束!");
    });
});

one() 方法确保事件监听器只会被触发一次,这对于一次性动画或需要精确控制的动画非常有用。webkitAnimationEnd、oAnimationEnd、MSAnimationEnd 是为了兼容不同浏览器内核的写法。

Animate.css 的进阶用法

Animate.css 不仅提供丰富的动画效果,还提供了一些辅助类来控制动画的速度、延迟和重复次数。

  • 动画速度:
    • animate__slow:动画速度变慢(3s)
    • animate__slower:动画速度更慢(5s)
    • animate__fast:动画速度变快(1s)
    • animate__faster:动画速度更快(0.5s)
    • 默认速度为 1s。
  • 动画延迟:
    • animate__delay-1s:延迟 1 秒播放
    • animate__delay-2s:延迟 2 秒播放
    • 以此类推,支持 animate__delay-3s、animate__delay-4s、animate__delay-5s。
  • 动画重复次数:
    • animate__infinite:动画无限次循环播放。

例如,让一个元素以慢速无限次弹跳,并延迟 2 秒开始:

<div class="animated animate__infinite animate__slow animate__delay-2s bounce">
    无限慢速弹跳
</div>

注意事项与最佳实践

  1. 性能考虑: 尽管 Animate.css 经过优化,但过度使用复杂的动画或同时对大量元素应用动画可能会影响页面性能。请适度使用,并测试在不同设备上的表现。
  2. 可访问性: 对于有运动敏感症的用户,过多的动画可能会引起不适。考虑提供选项让用户禁用动画,或使用 prefers-reduced-motion 媒体查询来调整动画行为。
  3. 动画冲突: 如果一个元素同时应用了多个动画类,可能会出现冲突或不预期的行为。确保每次只应用一个主要的动画效果。
  4. 与其他库的兼容性: Animate.css 是纯 CSS 库,与 jQuery、Bootstrap 等 J*aScript 框架或 CSS 框架可以很好地配合使用,通过 J*aScript 动态添加或移除类即可。

总结

animated 类是 Animate.css 动画库的核心,它为元素提供了执行动画所需的基础 CSS 属性。理解它的作用以及 Animate.css 的使用方法,能够帮助开发者快速、高效地为网页添加各种专业且生动的动画效果。通过结合 J*aScript 动态控制动画的触发和重置,我们可以创建出更加交互和响应式的用户体验。

以上就是理解 animated 类:Animate.css 动画库入门指南的详细内容,更多请关注其它相关文章!


# javascript  # css  # 移除  # 浏览器  # go  # ajax  # bootstrap  # 前端  # js  # html  # jquery  # java  # 推广网站领先易.速达  # 智能手环营销推广视频  # sem seo专员岗位薪资  # 全国网站建设与维护介绍  # 安宁全网营销型网站建设  # 山东抖音seo推广公司  # 百度seo优化方式  # 阳信英文网站建设价格  # 口碑好的seo网站排名优化软件  # 420seo 天津  # 只会  # 我们可以  # 并在  # 单选框  # 所需  # 慢速  # 你可以  # 表单  # 结束后 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  12306几点到几点不能订票? | 官方最新系统维护时间全解析  在Go Martini框架中高效服务动态生成图像的实践指南  豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售  京东单号查询入口_京东快递订单追踪入口  如何在网页中实现特定地点的随机图片展示  4399网页游戏电脑版全新入口 4399电脑端在线玩指南  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  如何使用Node.js csv 包按条件移除含空字段的CSV记录  Python实时数据流中的动态最值查找策略  在命令行怎么运行html项目_命令行运行html项目方法【教程】  4399免费游戏网址入口 4399小游戏免费入口点开即玩  快速CSGO开箱网站指南 CSGO开箱平台推荐  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  Go Martini框架:动态服务解码后的图片内容  如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化  《GTA6》开发画面疑似泄露!这次可不是AI了  iwriter统一登录平台 iwrite账号密码登录页面  yy漫画网页版官方入口_yy漫画官网登录页面链接  在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法  Go调试环境为何无法启动_Go调试器启动失败原因与解决策略  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】  PrimeNG Sidebar背景色自定义指南:CSS覆盖与主题化实践  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  在J*a项目里如何构建对象之间的契约_接口约束的实际落地  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  steam官方入口大全 steam账号注册及操作指南  AO3中文官网链接_AO3网页版稳定镜像站  邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策  天猫2025双十一0点秒杀攻略 天猫爆款抢购时间  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  如何在Promise链中有效终止错误处理后的执行  纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析  qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明  J*a应用集成GitHub CLI与API认证指南  React中useState与局部变量:理解组件状态管理与渲染机制  AO3官网镜像链接 Archive of Our Own同人文在线浏览  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏 

搜索