过渡和动画

  使用<transition> 组件包裹

  例:  <transition name="fade">

        <div v-if="true">过渡动画</div>

      </transition>

  style:.fade-enter-active, .fade-leave-active {transition: opactiy .5s}

     .fade-enter, .fade-leave-to{opacity:0;}

  以上切换v-if的状态能够让div元素渐显渐隐,而不是直接添加删除

  原理是VUE通过tansition组件的name属性值,然后使用它在过渡的各个节点为包含的元素添加类名。当元素被添加到文档或者从文档中移除时,会分别应用enter和leave两类过渡。以下是会添加的类名:

    {name}-enter(常用):这个类名会在元素被插入DOM时加入,然后在下一帧立刻移除。可以使用它来设置那些需要在元素开始进入过渡时移除的CSS属性。

    {name}-enter-active(常用): 在元素整个动画阶段应用。和-enter 同时被添加,然后在动画完成时被移除。适用于设置css过渡时间长度,过渡的属性和使用的曲线函数。

    {name}-enter-to: 这个类名会在-enter类名从元素移除的同时添加到元素上,适合用来设置那些在元素开始进入过渡时添加的css属性,通常在-enter类上设置与之相反的过渡属性好些

    {name}-leave:在离开过渡中,在离开过渡时被添加,下一帧被移除。

    {name}-leave-active(常用): 在离开过渡中,用于离开过渡的整个阶段。

    {name}-leave-to(常用): 在离开过渡被触发之后下一帧生效,在完成过渡之后被移除

 js过渡动画

   <transition>还提供用于实现的js动画钩子,这些钩子函数和用于css的过渡的类名类似。

   beforeEnter:进入动画前开始触发,适合设置初始值

   enter:这个钩子会在进入动画开始被触发,可以在这里运行动画。可以使用done回调来标明动画已经完成

   afterEnter:动画执行完成时被触发

   enterCancelled:进入动画被取消时触发

   beforeLeave:这个钩子等同于进入动画的beforeEnter钩子,会在离开动画开始前被调用

   leave:对于离开动画而言等同于进入enter 钩子,可以在这里进入动画

   afterLeave:会在离开动画执行完成时被触发

   leaveCancelled:在离开动画被取消时触发

  这些钩子会以时间的形式在transiton组件上触发

   例:

<transition 
  v-on:before-enter="test1"
  v-on:enter="test2"
  v-on:leave="test3"
>         <div v-if="true">过渡动画</div> </transition>
 //script
  methods:{
  test1(el){
    el.style.opacity = 0;
},
  test2(el){
    TweenLite.to(el,0.6,{opacity:1,onComplete:done});
},
  test3(el){
    TweenLite.to(el,0.6,{opacity:0,onComplete:done});
}

  使用js动画可以创建比使用css过渡复杂的多的动画效果,包括多步动画,或每次显示不同的过渡效果等,但css的性能更好,所在一般能用css实现就使用css。

动画 VUE基础回顾8的更多相关文章

  1. 自定义指令 VUE基础回顾7

    vue除了有v-if等内置指令,我们也可以创建自定义指令. 例:我们可以实现一个可以每隔一秒闪烁的节点,类似于<blink>标签的行为.添加一个指令类似于添加一个过滤器,可以将他传入vue ...

  2. 一、VUE基础回顾1

    1.v-if和v-show v-if 和v-show都可以显示和隐藏元素: 区别:(1)v-if初始值为false那么这个元素不会被渲染 ,v-show不管初始值为何值都会被渲染 (2)v-if是控制 ...

  3. VUE基础回顾6

    1.ref ref可以直接访问元素,而不需要使用querySelector或者其他dom节点的原生方法. <div ref = "box"></div> 在 ...

  4. VUE基础回顾2

    1.响应式 vue修改了每个添加到data上的对象,当该对象发生变化时vue会收到通知,从而实现响应式.对象的每个属性都会被替换为getter,setter方法. 有两种方式实现data对象的监听 ( ...

  5. vue基础回顾 router

    vue-router 1. 底层原理 hash 或者h5 histroy(有兼容性) 2. 使用的时候Vue需要引入VueRouter Vue.use(VueRouter) //VueRouter 底 ...

  6. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十八║Vue基础: 指令(下)+计算属性+watch

    回顾 今天来晚辣,给公司做了一个小项目,一个瀑布流+动态视频控制的DEMO,有需要的可以联系我,公司的项目就不对外展示了(一个后端程序员真的要干前端了哈哈哈). 书接上文,昨天正式的开始了Vue的代码 ...

  7. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十九║Vue基础: 样式动态绑定+生命周期

    回顾 哈喽大家好,前后端分离系列文章又开始了,今天周一,还是感谢大家花时间来观看我写的博客,周末呢,没有写文章,但是也没有闲着,主要是研究了下遗留问题,看过之前文章的应该知道,之前的在AOP使用Red ...

  8. Vue基础之插值表达式的另一种用法!附加变量的监听!

    Vue基础之插值表达式的另一种用法!附加变量的监听! 讲这个之前我们先回顾一下原来的用法! <body> <!-- Vue.js的应用可以分为两个重要的组成部分 一个是视图! 另一个 ...

  9. Vue基础之Vue的模板语法

    Vue基础之Vue的模板语法 数据绑定 01 数据绑定最常见的形式就是使用插值表达式(两个大括号!)[也就是小胡子语法!mustache] <body> <!-- Vue.js的应用 ...

随机推荐

  1. 一条SQL语句执行得很慢的原因有哪些?| MySQL高性能优化规范建议

    一条SQL语句执行得很慢的原因有哪些 https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485185&idx=1&am ...

  2. annotation processor 为啥没有被调用?

    Android Studio 3.5 使用@AutoService(Processor.class)注册annotation processor Android Plugin for Gradle:  ...

  3. Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果

    Xamarin.FormsShell基础教程(4)Shell项目内容列表页面运行效果 在创建好Shell解决方案后,就可以运行程序了.本小节将讲解运行后的效果. 内容列表页面 运行程序,初始效果如图1 ...

  4. 最好用的Redis Desktop Manager 0.9.3 版本下载

    因为Redis Desktop Manager作者在 0.9.4 版本之后选择对所有的安装包收费,不再提供安装包下载,但是源码依旧公开. github 上有 redis destop manager ...

  5. EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案使用详情功能-通道配置Excel导入导出

    使用EasyNVR的用户都有知道,由于EasyNVR是将设备与EasyNVR的通道进行绑定的,因此EasyNVR是通过手动的通道配置来进行设备接入的,这样可以做到将设备的和通道对应的接入.但是,如果手 ...

  6. ELK 部署相关问题汇总

    1.启动es-head问题 因为高版本es-head需要单独启动,所以先要安装npm等工具.安装教程见[1] 启动命令:../elasticsearch-head/node_modules/grunt ...

  7. mysql数据库事务类型

    出自:https://blog.csdn.net/u014439239/article/details/78086729 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致 ...

  8. cocoapods安装 Unable to download data from http://ruby.taobao.org/ & don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

    安装cocoapods,记录两个问题! 1.镜像已经替换成了 http://ruby.taobao.org/, 还是不能不能安装cocoapods, 报错:Unable to download dat ...

  9. MYSQL:查询单表中不同邮箱最近一次发送状态

    1.联系方式表-customer_contact: id email 1 123456@qq.com 2 987643@qq.com 3 hahaha@qq.com 2.发送邮件记录表-contact ...

  10. 实现一个java锁

    AQS是实现java锁的核心,但是实现起来还是仅仅只需继承该类重写它的几个主要方法即可. 1.首先,定义一个同步类,继承AQS. //这里要有个Sync内部类,实现锁需要继承AQSprivate st ...