过渡 & 动画

过渡动画

  1. 用css先定义好动画效果
.a-enter-active, .a-leave-active {
transition: all 1.5s;
}
.a-enter, .a-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
transform: translateX(100px);
}
  1. 把要加动画的内容添加到transition标签中,并写出name属性
 <transition name="a">
<div v-if="isShow">
111111111111111111111
</div>
</transition>
  1. name加载对应的class名字前
例如 name="fade"
所对应的动画class名字为 fade-enter-active
fade-leave-active
fade-enter
fade-leave-to

过渡的类名(官网的解释)

  1. v-enter:定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。
  2. v-enter-active:定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。
  3. v-enter-to: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。
  4. v-leave: 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。
  5. v-leave-active:定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。
  6. v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除。
关键帧动画
 .b-enter-active {
animation: aaa 1.5s;
}
.b-leave-active {
animation: aaa 1.5s reverse;
}
@keyframes aaa {
0% {
opacity: 0;
transform: translateX(100px);
} 100% {
opacity: 1;
transform: translateX(0px);
}
}
结合动画库

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

 <transition name="a" enter-active-class="animated " leave-active-class="animated ">
<div v-if="isShow">
111111111111111111111
</div>
</transition>

多个元素过渡

  • 当标签名不同时可以用v-if/v-else

  • 当相同标签切换时,要通过key设置

  • 同时生效的进入和离开的过渡不能满足所有要求,所以 Vue 提供了过渡模式

    • in-out:新元素先进行过渡,完成之后当前元素过渡离开。
    • out-in:当前元素先进行过渡,完成之后新元素过渡进入。
        <button @click="isShow= !isShow">click</button>
<transition name="bounce" mode="out-in">
<!-- <div v-if="isShow"> -->
<div v-if="isShow" key="1">11111111111</div>
<div v-else key="2">222222222222</div>

多个组件过渡

只需要动态组件

   <keep-alive>
<transition name="bounce" mode="out-in">
<component :is="which"></component>
</transition>
</keep-alive> <footer>
<ul>
<li><a @click="which='home'" >首页</a></li>
<li><a @click="which='list'">列表页</a></li>
<li><a @click="which='shopcar'">购物车页面</a></li>
</ul>
</footer>
 var vm =  new Vue({
el:"#box",
data:{
which:"home"
},
components:{
"home":{template:`<div>home组件<input type="text"/></div>`},
"list":{template:`<div>list组件</div>`},
"shopcar":{template:`<div>shopcar组件</div>`}
}
})

多个列表的过渡

使用组件

    <transition-group tag="ul" name="bounce">
<li v-for="(data,index) in datalist" :key="data">
{{data}}--{{index}}
<button @click="handleDelClick(index,$event)">del</button>
</li> </transition-group>
  new Vue({
el:"#box",
data:{
mytext:"111",
datalist:[]
},
methods: {
handleAdd(){
console.log(this.mytext)
this.datalist.push(this.mytext)
},
handleDelClick(index){
console.log(index)
this.datalist.splice(index,1)
}
}
})

什么场景下可以使用动画

  • 条件渲染 v-if
  • 条件展示 v-show
  • 根节点
  • 动态组件

总结

  • 元素或者组件 进入 离开(页面) 可以触发动画效果

  • 在目标元素的外侧用 transition 包裹 ,通过name 属性添加一个名字

  • 进入状态

  • name-enter 、name-enter-to、 name-enter-active

  • 离开状态把enter换成leave

  • 多个元素或者组件要用动画 需要使用transtion-group 里面的子元素要添加不同的key值

vue 过渡 & 动画的更多相关文章

  1. vue过渡动画

    概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.c ...

  2. Vue过渡动画—Vue学习笔记

    要求:要通过Vue使用过渡动画我们要把需要过度的元素放在<transition name='变量名'></transition>中. 原理:通过在特定的时刻增加/移除样式实现. ...

  3. vue过渡动画效果

    1 过渡基础 1.1 过渡的方式 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果. 包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS ...

  4. vue过渡 & 动画---进入/离开 & 列表过渡

    (1)概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animat ...

  5. Vue过渡动画运用transition

    vue的过渡动画,主要是transition标签的使用,配合css动画实现的.官方文档css过渡 通过点击事件来切换show的值来改变显示的文本,下面的css通过进入离开时的在匀速状态下xxs(秒)下 ...

  6. Vue.js 第3章 axios&Vue过渡动画

    promise 它将我们从回调地狱中解脱出来 创建和使用 var fs = require('fs') // 创建promise // reslove表示执行成功后调用的回调函数 // reject表 ...

  7. (学习心路历程)Vue过渡/动画 VS. 过渡/动画

    [此篇为本人的个人见解和哔哔赖赖,如果有观点不对的地方,还请大家指出来哇!!] 最近实习在做一个项目,里面应用的动画效果还蛮复杂的,因为本身对Vue框架比较熟悉,所以最终选择了Vue框架. 自己之前从 ...

  8. vue过渡动画样式

    在进入/离开的过渡中,会有 6 个 class 切换. v-enter:定义进入过渡的开始状态.在元素被插入之前生效,在元素被插入之后的下一帧移除. v-enter-active:定义进入过渡生效时的 ...

  9. [原]浅谈vue过渡动画,简单易懂

    在vue中什么是动画 开始先啰嗦一下,动画的解释(自我理解

随机推荐

  1. UGUI源码之Graphic

    Graphic是用来显示图像的一个抽象类,是MaskableGraphic的父类,而MaskableGraphic是Image.RawImage.Text的父类. Graphic继承于UIBehavi ...

  2. DHCP服务器搭建

    一.服务端安装配置 1.安装dhcp相关软件包 执行命令:yum install dhcp dhcp-devel -y #通过yum安装dhcp软件包 2.编辑配置dhcp的配置文件,文件路径:/et ...

  3. 【设计模式】 (2)关于UML

    UML -- Unified Modeling Lanaguage(统计建模语言),是一种软件系统分析和设计的语言工具,他用于帮助软件开发人员进行思考和记录思路的结果. UML本身是一套符号的规定,就 ...

  4. rabbitmq系列(三)消息幂等性处理

    一.springboot整合rabbitmq 我们需要新建两个工程,一个作为生产者,另一个作为消费者.在pom.xml中添加amqp依赖: <dependency> <groupId ...

  5. cogs 293. [NOI 2000] 单词查找树 Trie树字典树

    293. [NOI 2000] 单词查找树 ★★☆   输入文件:trie.in   输出文件:trie.out   简单对比时间限制:1 s   内存限制:128 MB 在进行文法分析的时候,通常需 ...

  6. python StringIO和ByteIO

    一.StringIO 1.作用:在内存在读写str # 导入模块 from io import StringIO # 实例化StringIO对象 str_io = StringIO() # 向内存中写 ...

  7. 机器学习-MNIST数据集使用二分类

    一.二分类训练MNIST数据集练习 %matplotlib inlineimport matplotlibimport numpy as npimport matplotlib.pyplot as p ...

  8. Data for the People: How to Make Our Post-Privacy Economy Work for You

    等翻译成 chinese在看吧

  9. TCP/IP、TCP、UDP、Socket知识汇总

    带你了解TCP/IP,UDP,Socket之间关系 https://blog.csdn.net/chaoshenzhaoxichao/article/details/79785318 主要知识点: T ...

  10. CSS-17-页面布局

    页面布局: 静态布局: 静态布局:元素不变的布局. 布局特点:缩小后内容被遮挡,拖动滚动条显示布局 设计方法: PC:居中布局,所有样式使用绝对宽度和高度 移动设备:另外建立移动网站,以m.域名为域名 ...