前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >29.Vue-使用第三方animate.css类库实现动画

29.Vue-使用第三方animate.css类库实现动画

作者头像
Devops海洋的渔夫
发布于 2022-01-17 01:24:50
发布于 2022-01-17 01:24:50
4K00
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:0
代码可运行

概述

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。 包括以下工具:

  • CSS 过渡和动画中自动应用 class
  • 可以配合使用第三方 CSS 动画库,如 Animate.css
  • 在过渡钩子函数中使用 JavaScript 直接操作 DOM
  • 可以配合使用第三方 JavaScript 动画库,如 Velocity.js

上一篇说明了使用「过渡类名」来实现动画效果,但是每个动画都要自己去写的话,其实是一个挺麻烦的事情,本篇章来说明使用第三方css动画库「Animate.css」来实现动画效果。

Animate.css 库介绍

简介

animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake)、闪烁(flash)、弹跳(bounce)、翻转(flip)、旋转(rotateIn/rotateOut)、淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果。

虽然借助 animate.css 能够很方便、快速的制作 CSS3 动画效果,但还是建议看看 animate.css 的代码,也许你能从中学到一些东西。

相关网址

animate.css中文网:http://www.animate.net.cn/

image-20200131234307872

在进入Animate中文网之后,可以查看部分的在线演示。

可以看到介绍,使用animate库非常简单,下面来看看如果引入使用。

下载animate库

下载地址:https://daneden.github.io/animate.css/

直接点击这个地址下载的话,我目前访问页面失败。然后我又默默去Github中的release页面来下载。

https://github.com/daneden/animate.css/releases

解压下载的zip包,可以看到animate.css的相关文件:

在项目中开发中,只需要导入这个animate.min.css 压缩文件即可。

使用示例 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--    第一步. 引入animate.css文件    -->
    <link rel="stylesheet" href="lib/animate.css-3.7.2/animate.min.css">

</head>
<body>

    <!--    使用animate库的fadeInUP动画效果     -->
    <div class="animated fadeInUp">
        <h1>hello world</h1>
    </div>

</body>
</html>

浏览器执行效果,如下:

上面的示例给元素加上 class 后,刷新页面,就能看到动画效果了。animated 类似于全局变量,它定义了动画的持续时间;bounce 是动画具体的动画效果的名称,你可以选择任意的效果。

如果动画是无限播放的,可以添加 class infinite,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--    使用animate库的fadeInUP动画效果     -->
<div class="animated fadeInUp infinite">
    <h1>hello world</h1>
</div>

使用示例 2

你也可以通过 JavaScript 或 jQuery 给元素添加这些 class,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(function(){
    $('#dowebok').addClass('animated bounce');
});

有些动画效果最后会让元素不可见,比如淡出、向左滑动等等,可能你又需要将 class 删除,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(function(){
    $('#dowebok').addClass('animated bounce');
    setTimeout(function(){
        $('#dowebok').removeClass('bounce');
    }, 1000);
});

animate.css 的默认设置也许有些时候并不是我们想要的,所以你可以重新设置,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#dowebok {
    animate-duration: 2s;    //动画持续时间
    animate-delay: 1s;    //动画延迟时间
    animate-iteration-count: 2;    //动画执行次数
}

注意添加浏览器前缀。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-ms- 兼容IE浏览器
-moz- 兼容firefox
-o- 兼容opera
-webkit- 兼容chrome 和 safari

完整示例代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--    第一步. 引入animate.css文件    -->
    <link rel="stylesheet" href="lib/animate.css-3.7.2/animate.min.css">

    <!--    编写js控制animate动画类 -->
    <script src="lib/jquery/jquery-3.4.1.min.js"></script>
    <script>
        $(function(){
            $('#dowebok').addClass('animated bounce');
            setTimeout(function(){
                $('#dowebok').removeClass('bounce');
            }, 1000);
        });
    </script>

</head>
<body>

    <!--    使用js控制animated的动画类     -->
    <div id="dowebok">
        <h1>Bounce</h1>
    </div>

</body>
</html>

浏览器显示如下:

更多的动画效果,可以根据在线演示来查看,如下:

https://daneden.github.io/animate.css/

下面来看看如何在Vue框架中应用。

在Vue框架中应用animate.css库

使用enter-active-classleave-active-class应用css动画

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--  1.导入vue.js库  -->
    <script src="lib/vue.js"></script>
    <!--  2.导入animate.css  -->
    <link rel="stylesheet" href="lib/animate.css-3.7.2/animate.min.css">
</head>
<body>

    <div id="app">

        <!-- 使用v-on绑定click事件执行切换show变量,用于控制下面p标签的v-if -->
        <button @click="show = !show">
            Toggle render
        </button>

        <!-- 设置transition,使用enter-active-class设置入场的效果,使用leave-active-class设置离场的效果  -->
        <transition enter-active-class="animated bounceIn" leave-active-class="animated bounceOut" >
            <p v-if="show">hello</p>
        </transition>

    </div>

    <script>
        // 2. 创建一个Vue的实例
        var vm = new Vue({
            el: '#app',
            data: {
                show: true
            },
        })
    </script>

</body>
</html>

浏览器显示效果如下:

当点击隐藏「hello」的时候,使用「bounceOut」显示离场的效果。

当点击显示「hello」的时候,使用「bounceIn」显示入场的效果。

在上面可以看到两个class中都需要去写animated,如下:

能否优化一下呢?不用每个class都去写一遍,这样多麻烦。

优化animeted的填写位置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <!-- 设置transition,使用enter-active-class设置入场的效果,使用leave-active-class设置离场的效果  -->
        <transition enter-active-class="bounceIn" leave-active-class="bounceOut" >
            <p v-if="show" class="animated">hello</p>
        </transition>

显性的过渡持续时间

❝2.2.0 新增 ❞

在很多情况下,Vue 可以自动得出过渡效果的完成时机。默认情况下,Vue 会等待其在过渡效果的根元素的第一个 transitionendanimationend 事件。然而也可以不这样设定——比如,我们可以拥有一个精心编排的一系列过渡效果,其中一些嵌套的内部元素相比于过渡效果的根元素有延迟的或更长的过渡效果。

在这种情况下你可以用 组件上的 duration 属性定制一个显性的过渡持续时间 (以毫秒计):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<transition :duration="1000">...</transition>

你也可以定制进入和移出的持续时间:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<transition :duration="{ enter: 500, leave: 800 }">...</transition>
使用:duration设置动画统一的运行时长

上面只是设置了一些动画效果,但是如果需要设置动画的运行时长,那么则需要设置「duration」,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--  1.导入vue.js库  -->
    <script src="lib/vue.js"></script>
    <!--  2.导入animate.css  -->
    <link rel="stylesheet" href="lib/animate.css-3.7.2/animate.min.css">
</head>
<body>

    <div id="app">

        <!-- 使用v-on绑定click事件执行切换show变量,用于控制下面p标签的v-if -->
        <button @click="show = !show">
            Toggle render
        </button>

        <!-- 设置transition,使用enter-active-class设置入场的效果,使用leave-active-class设置离场的效果  -->
        <transition enter-active-class="bounceIn" leave-active-class="bounceOut" :duration="200">
            <p v-if="show" class="animated">hello</p>
        </transition>

        <hr>

        <transition enter-active-class="bounceIn" leave-active-class="bounceOut" :duration="1500">
            <p v-if="show" class="animated">hello</p>
        </transition>

    </div>

    <script>
        // 2\. 创建一个Vue的实例
        var vm = new Vue({
            el: '#app',
            data: {
                show: true
            },
        })
    </script>

</body>
</html>

浏览器执行如下:

上面设置入场和离场的运行时长都是一致的,如果需要拆分,可以单独设置如下。

使用:duration分开设置动画的入场和离场的运行时长

使用字典就可以分开设置入场enter和离场leave的运行时长。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<transition enter-active-class="bounceIn" leave-active-class="bounceOut"
            :duration="{ enter:200, leave:1500 }">
    <p v-if="show" class="animated">hello</p>
</transition>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AIGC:DALL·E 2、Midjourney和 Stable Diffusion 产品对比
随着 Diffusion Model 的普及,大家可能注意到互联网上有着铺天盖地的人工智能 (AI) 生成的图像,这些图像都是使用『文本到图像』的生成模型生成的:只需要输入一个文本描述(prompt/提示),AI 模型就可以在几秒几分钟内生成一个或多个精准匹配提示的精美图像。截止目前为止,三个最流行的AI作画产品是 📘Stable Diffusion、📘Midjourney和 📘DALL·E 2。
Freedom123
2024/03/29
1.1K0
AIGC:DALL·E 2、Midjourney和 Stable Diffusion 产品对比
中国风?古典系?AI中文绘图创作尝鲜!⛵
图片本文对百度开源的中文 AI 图像生成器 ERNIE 进行讲解,包括工具简介、通过Demo页面和API两种使用方式,以及使用中文提示词生成的图像效果。---💡 作者:韩信子@ShowMeAI📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42📘 本文地址:https://www.showmeai.tech/article-detail/413📢 声明:版权所有,转载请联系平台与作者并注明出处📢 收藏ShowMeAI查看更多精彩内容💡 引言图片人工智能图像生成器
ShowMeAI
2022/12/20
9830
中国风?古典系?AI中文绘图创作尝鲜!⛵
你给文字描述,AI艺术作画,精美无比!附源码,快来试试!
图片 💡 作者:韩信子@ShowMeAI 📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42 📘 TensorFlow 实战系列:https://www.showmeai.tech/tutorials/43 📘 本文地址:https://www.showmeai.tech/article-detail/313 📢 声明:版权所有,转载请联系平台与作者并注明出处 📢 收藏ShowMeAI查看更多精彩内容 图片 AI 在艺术界的覆盖越来越广,从最早的 GPT3
ShowMeAI
2022/10/28
1.4K0
你给文字描述,AI艺术作画,精美无比!附源码,快来试试!
Hugging Face发布diffuser模型AI绘画库初尝鲜!
图片💡 作者:韩信子@ShowMeAI📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42📘 TensorFlow 实战系列:https://www.showmeai.tech/tutorials/43📘 本文地址:https://www.showmeai.tech/article-detail/312📢 声明:版权所有,转载请联系平台与作者并注明出处📢 收藏ShowMeAI查看更多精彩内容图片工具库 transformers 的开源方 Hugging Face
ShowMeAI
2022/10/27
1.5K0
Hugging Face发布diffuser模型AI绘画库初尝鲜!
ChatGPT 之后,再玩玩 Stable-Diffusion
前些天体验的 ChatGPT 主要用来进行文本方面的处理,那么图片生成有没有这样的 AI 工具 呢?答案是肯定的。
oec2003
2023/02/28
1.2K0
ChatGPT 之后,再玩玩 Stable-Diffusion
AIGC:DALL·E 2, Stable Diffusion和 Midjourney工作原理简介
在过去的几年里,人工智能(AI)取得了极大的进展,而AI的新产品中有AI图像生成器。这是一种能够将输入的语句转换为图像的工具。文本转图像的AI工具有许多,但最突出的就属DALLE 2、Stable Diffusion和Midjourney了。
Freedom123
2024/03/29
4670
AIGC:DALL·E 2, Stable Diffusion和 Midjourney工作原理简介
AI数字绘画 stable-diffusion 保姆级教程
prompt: Cyberpunk, 8k resolution, castle, the rose sea, dream
秋风的笔记
2022/12/05
2.6K0
AI数字绘画 stable-diffusion 保姆级教程
从头训练一个神经网络!教它学会莫奈风格作画!⛵
图片本文使用 GAN(生成对抗网络)进行AI绘画。torchgan是基于PyTorch的一个GAN工具库,本文讲解搭建DCGAN神经网络,并应用于『莫奈』风格绘画的全过程。---💡 作者:韩信子@ShowMeAI📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42📘 PyTorch 实战系列:https://www.showmeai.tech/tutorials/44📘 本文地址:https://www.showmeai.tech/article-detail/
ShowMeAI
2022/11/09
9340
从头训练一个神经网络!教它学会莫奈风格作画!⛵
画笔之争!Dall-E 3 vs MidJourney 5.2 vs Stable Diffusion XL:AI绘画三强PK!
Dall-E 3是OpenAI最新发布的AI图像生成器,近期在AI领域引起了广泛的关注。它以其卓越的能力令人瞩目,成为了人们热议的话题。相较于之前的Dall-E版本,它在连贯性和图像质量方面有了显著的提升,给人们留下了深刻的印象。
架构狂人
2023/11/09
1.2K0
画笔之争!Dall-E 3 vs MidJourney 5.2 vs Stable Diffusion XL:AI绘画三强PK!
分享15个全球顶尖的AIGC图片生成平台
人工智能正在改变许多行业的格局,而其中改变最直观和影响最大的就是AIGC领域的图像创作。
非喵鱼
2022/12/31
32.8K0
分享15个全球顶尖的AIGC图片生成平台
岂止DALL·E!现在AI画家都会建模、做视频了,以后会什么简直不敢想
---- 新智元报道   编辑:David 【新智元导读】特斯拉前AI总监点赞!这个开源AI艺术创作模型,想要开启「人机合作」艺术创作新时代。 近日,由Emad Mostaque创立和资助的Stability.ai公司宣布公开发布AI创造的艺术作品。 你可能认为这只是AI在艺术领域的另一次尝试,但实际上远不止如此。 有两个原因。 首先,与DALL-E 2不同的是,Stable Diffusion是开源的。这意味着任何人都可以利用它的骨干,免费建立针对特定文本到图像创作任务的应用程序。 另外,Midj
新智元
2022/09/13
5290
岂止DALL·E!现在AI画家都会建模、做视频了,以后会什么简直不敢想
盘点那些超好用的创作AI艺术图片的工具
曾经我们都曾幻想某一天我们的大部分工作都会被人工智能取代,而这一天正在到来。但我们很难想象人工智能可以像人类一样具有创造力和艺术设计的能力。然而最新的人工智能技术已经向我们证明我们错了。
程序那些事儿
2023/03/07
1.1K0
盘点那些超好用的创作AI艺术图片的工具
AI 创作离我们还远吗?
导语|近些年AI蓬勃发展,在各行各业都有着不同方式的应用。而AI创作艺术和生产内容无疑是今年以来最热门的话题,MidJourney生成的画作拿到艺术比赛第一名以及Stable Diffusion的开源,无疑将文本生成图片的热点在近期推向了高潮。那么AI创作到底发生过什么,原理又是如何,是噱头还是会有对我们有用的潜在应用场景呢?我们尝试深入浅出地来回答这些问题。 本文作者:ryanlyin,腾讯IEG数据科学 一、 AI创作怎么火了? 今年开始,文本描述自动生成图片(Text-to-Image)的AI绘画黑科
腾讯大讲堂
2022/11/03
1.4K0
AI 创作离我们还远吗?
浅聊一下 AI 画画
2022 年 8 月,在美国科罗拉多州举办了一场新兴数字艺术家竞赛,其中『数字艺术/数字修饰照片』类别的一等奖由一幅名为《太空歌剧院》的作品获得,而神奇的是这幅作品的参赛者并没有绘画基础,而是完全用 AI 完成了这幅作品。这一事件引发了热议,并由此激发了大家对 AI 画画的兴趣。
关键帧
2023/02/14
1.2K0
浅聊一下 AI 画画
今年很火的AI绘画怎么玩
2022年绝对可以说是AIGC元年,从google搜索的趋势来看,在2022年AI绘画及AI生成艺术的搜索量激增。
得物技术
2023/03/22
1.5K0
今年很火的AI绘画怎么玩
2023年最新AIGC绘画水平发展
作者:yiqiuzheng,腾讯 IEG 前端工程师 一、现状 这两年 AI 关键词频频热搜,从 2022 年 4 月初代码自动补全神器Copilot点燃程序员圈,到 10 月中旬的 AI 绘画Stable Diffcusion 1.0震惊绘画圈,最后到如今的ChatGPT引爆全网各领域。AI 人工智能时代已然到来。在 2023 年,AI 绘画技术和应用的发展已经非常迅速。目前,AI 绘画技术已经能够生成逼真的图像、视频和音频,同时还能够模仿艺术家的风格,创造出令人惊叹的艺术作品。 但是这些早期的 AI 绘
腾讯技术工程官方号
2023/04/01
1.4K0
2023年最新AIGC绘画水平发展
开源文生图模型再进化,Stable Diffusion XL 1.0登场,出图效果不输Midjourney
在大模型开启的 AIGC 时代,由明星 AI 初创公司 Stability AI 打造的文本到图像生成模型 Stable Diffusion 可谓风靡全球。
机器之心
2023/08/08
5910
开源文生图模型再进化,Stable Diffusion XL 1.0登场,出图效果不输Midjourney
Stable Diffusion又出大招!「文生动画」震撼发布淘汰导演,DC英雄一秒变身
---- 新智元报道   编辑:Aeneas 润 【新智元导读】Stability AI又来卷了AI视觉圈了!Stable Animation震撼发布,动画效果令人惊叹。 Stability AI又放大招! 现在,Stable Diffusion也能生成视频了。AI届,实在是太卷了。 昨天,Stability AI发布了一款专为艺术家和开发人员设计的工具——Stable Animation SDK。用户可以通过多种方式创建令人惊叹的动画效果。 此前,Runway的Gen-2就相当炸裂,宣传词非常霸
新智元
2023/05/15
3750
Stable Diffusion又出大招!「文生动画」震撼发布淘汰导演,DC英雄一秒变身
Stable Diffusion 3技术报告流出,Sora构架再立大功!生图圈开源暴打Midjourney和DALL·E 3?
Stability AI在发布了Stable Diffusion 3之后,今天公布了详细的技术报告。
新智元
2024/03/13
1970
Stable Diffusion 3技术报告流出,Sora构架再立大功!生图圈开源暴打Midjourney和DALL·E 3?
AI绘画工具大对决:谁才是你的创意缪斯?(2/10)
在当今数字化时代,AI 绘画工具如雨后春笋般涌现,彻底改变了艺术创作的格局。从专业艺术家到普通爱好者,越来越多的人投身于 AI 绘画的奇妙世界。Stable Diffusion、Midjourney 与 DALL・E 等工具,它们在功能、特点和适用场景上各有千秋,满足了不同用户的多样化需求。
正在走向自律
2025/01/24
1870
AI绘画工具大对决:谁才是你的创意缪斯?(2/10)
推荐阅读
相关推荐
AIGC:DALL·E 2、Midjourney和 Stable Diffusion 产品对比
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验